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

时间:2019-10-19 15:51:18

标签: authlib

总体上喜欢authlib。有关 client_kwargs 的问题,请参见 https://docs.authlib.org/en/latest/client/frameworks.htmlhttps://docs.authlib.org/en/latest/client/django.html

问题陈述:我尝试在client_kwargs字典中传递“作用域”和“受众”键/值对,但是只有“作用域”键/值用于生成用于授权的URI。 我需要通过Atlassian OAuth2.0 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 仅用于某些关键字参数吗?如果是这样,最好在文档中共享它;否则,将它与其他所有内容一起设置在config中会很方便。

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

1 个答案:

答案 0 :(得分:1)

由于OAuth 1.0和OAuth 2.0不同,因此该client_kwargs旨在将额外的参数传递给OAuth1Client / OAuth1SessionOAuth2Client / OAuth2Session

根据您的情况,有一个authorize_params。您可以将audience放在authorize_params中:

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