总体上喜欢authlib。有关 client_kwargs 的问题,请参见 https://docs.authlib.org/en/latest/client/frameworks.html 和https://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中发现了此行为。 谢谢!
答案 0 :(得分:1)
由于OAuth 1.0和OAuth 2.0不同,因此该client_kwargs
旨在将额外的参数传递给OAuth1Client
/ OAuth1Session
或OAuth2Client
/ OAuth2Session
。
根据您的情况,有一个authorize_params
。您可以将audience
放在authorize_params
中:
oauth.register(
....
authorize_params={'audience': '...'},
....
)