使用 Insomnia 工具测试 authlib 失败
Failed testing authlib with Insomnia tool
我启动了 this 示例服务器并注册了一个用户应用程序。我试图简单地看到一些至少可以工作的东西,但这非常困难。我不确定这个 authlib 库是否完全搞砸了,或者我做错了什么。
所以我像这样填写所有内容,并得到回复,header 中未提供授权。如果我切换到 Headers 选项卡并添加名为 "Authorization" 的 header 并在值字段中写入一些内容,我会收到我提供无效令牌的响应。但据我了解,Insomnia 会处理此问题,并且 1:获取令牌 2:执行我想要的请求(在本例中为 GET:/api/me)。那么问题出在哪里,为什么这个库不能按预期工作?
我不知道失眠。但这里有一个 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
服务器会return一个token给你,你可以用这个token查询/api/me
:
GET /api/me
Authorization: Bearer token-string
问题应该是如何使用我不知道的Insomnia。我的建议是先阅读文档 https://docs.authlib.org/en/latest/flask/2/index.html 然后阅读示例的源代码。
回答@kcorlidy
^^^ it needs bearer-auth and token, but server never write token into database
完成者:
save_token = create_save_token_func(db.session, OAuth2Token)
authorization = AuthorizationServer(
query_client=query_client,
save_token=save_token, # NOTICE HERE
)
我启动了 this 示例服务器并注册了一个用户应用程序。我试图简单地看到一些至少可以工作的东西,但这非常困难。我不确定这个 authlib 库是否完全搞砸了,或者我做错了什么。 所以我像这样填写所有内容,并得到回复,header 中未提供授权。如果我切换到 Headers 选项卡并添加名为 "Authorization" 的 header 并在值字段中写入一些内容,我会收到我提供无效令牌的响应。但据我了解,Insomnia 会处理此问题,并且 1:获取令牌 2:执行我想要的请求(在本例中为 GET:/api/me)。那么问题出在哪里,为什么这个库不能按预期工作?
我不知道失眠。但这里有一个 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
服务器会return一个token给你,你可以用这个token查询/api/me
:
GET /api/me
Authorization: Bearer token-string
问题应该是如何使用我不知道的Insomnia。我的建议是先阅读文档 https://docs.authlib.org/en/latest/flask/2/index.html 然后阅读示例的源代码。
回答@kcorlidy
^^^ it needs bearer-auth and token, but server never write token into database
完成者:
save_token = create_save_token_func(db.session, OAuth2Token)
authorization = AuthorizationServer(
query_client=query_client,
save_token=save_token, # NOTICE HERE
)