authlib:配置中的某些 client_kwargs 未使用

authlib: some client_kwargs in config are not used

总体上喜欢 authlib。关于 client_kwargs 中描述的问题 https://docs.authlib.org/en/latest/client/frameworks.htmlhttps://docs.authlib.org/en/latest/client/django.html

问题陈述:我试图在 client_kwargs 字典中传递 "scope" 和 "audience" key/value 对,但仅"scope" key/value 用于生成授权URI。 我需要为 Atlassian OAuth2.0 传递 "audience" https://developer.atlassian.com/cloud/jira/platform/oauth-2-authorization-code-grants-3lo-for-apps/

通过将 "audience"="api.atlassian.com" 传递给 oauth.atlassian.authorize_redirect.

进行一些修改后找到 解决方法

问题:oauth.register/AUTHLIB_OAUTH_CLIENTS中的client_kwargs是否仅用于某些关键字参数?如果是这样,最好在文档中分享它;否则将它与其他所有内容一起设置在配置中会很方便。

在 0.12.1 和 0.13.dev0 中发现了这种行为。 谢谢!

因为 OAuth 1.0 和 OAuth 2.0 不同,这个 client_kwargs 旨在将额外参数传递给 OAuth1Client/OAuth1SessionOAuth2Client/OAuth2Session.

对于你的情况,有一个 authorize_params。您可以将 audience 放入您的 authorize_params:

oauth.register(
    ....
    authorize_params={'audience': '...'},
    ....
)