0

我启动了这个示例服务器并注册了一个用户应用程序。我试图简单地看到一些至少有效的东西,但这非常困难。我不确定这个 authlib 库是完全搞砸了还是我做错了什么。所以我像这样填写所有内容,并得到一个响应,标题中没有提供授权。如果我切换到标题选项卡并添加名为“授权”的标题并在值字段中写入一些内容,我会收到我提供无效令牌的响应。但据我了解,Insomnia 处理这个和 1:获取令牌 2:执行我想要的请求(在本例中为 GET:/api/me)。那么问题出在哪里,为什么这个库不能按预期工作?

图 1 图 2

4

1 回答 1

2

我不知道失眠。但这里是 OAuth2 的一个基本概念:https ://docs.authlib.org/en/latest/basic/oauth2.html

确保您已创建client_credentials启用授权类型的客户端。

然后发送一个 POST 为:

POST /oauth/token
Authorization: Basic base64(client_id:client_secret)

grant_type=client_credentials&scope=profile

服务器会返回一个token给你,然后你可以使用这个token来查询/api/me

GET /api/me
Authorization: Bearer token-string

问题应该是如何使用我不知道的Insomnia。我的建议是你先阅读文档https://docs.authlib.org/en/latest/flask/2/index.html然后你可以阅读示例的源代码。


回答@kcorlidy

^^^ 它需要承载认证和令牌,但服务器从不将令牌写入数据库

这是通过以下方式完成的:

save_token = create_save_token_func(db.session, OAuth2Token)
authorization = AuthorizationServer(
    query_client=query_client,
    save_token=save_token,  # NOTICE HERE
)
于 2018-12-26T02:13:19.593 回答