使用 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
)