0

我的 oAuth2 服务要求我不是通过 GET 请求访问令牌,而是通过 POST 请求并在 JSON 正文中发送 client_id、client_secret 和 token_endpoint。

根据文档,authlib似乎支持 POST 身份验证请求。但是,以下代码仍然返回“无效请求”(而使用邮递员手动形成的请求成功):

session = OAuth2Session(
    settings.SECURE_M2M_CLIENT_ID, settings.SECURE_M2M_CLIENT_SECRET,
    token_endpoint_auth_method="client_secret_post"
)
token = session.fetch_token(settings.SECURE_M2M_TOKEN_ENDPOINT, verify=False)
4

1 回答 1

1

标准client_secret_post将发送表单编码的正文。您的案例可以使用自定义身份验证方法完成,您可以从这里学习:https ://docs.authlib.org/en/latest/client/oauth2.html?highlight=token_endpoint_auth_method#client-authentication

例如,您可以调用您的方法:client_secret_json_post.

于 2020-06-23T07:11:35.610 回答