【问题标题】:Failed testing authlib with Insomnia tool使用 Insomnia 工具测试 authlib 失败
【发布时间】:2018-12-23 23:32:01
【问题描述】:
我启动了this 示例服务器并注册了一个用户应用程序。我试图简单地看到一些至少有效的东西,但这非常困难。我不确定这个 authlib 库是完全搞砸了还是我做错了什么。
所以我像这样填写所有内容,并得到一个响应,标题中没有提供授权。如果我切换到标题选项卡并添加名为“授权”的标题并在值字段中写入一些内容,我会收到我提供无效令牌的响应。但据我了解,Insomnia 处理这个和 1:获取令牌 2:执行我想要的请求(在本例中为 GET:/api/me)。那么问题出在哪里,为什么这个库不能按预期工作?
【问题讨论】:
标签:
python-requests
authlib
insomnia
【解决方案1】:
我不知道失眠。但这里有一个 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
)