authlib: некоторые client_kwargs в конфиге не используются - PullRequest
0 голосов
/ 19 октября 2019

Люблю authlib в целом. Вопрос о client_kwargs , описанном в https://docs.authlib.org/en/latest/client/frameworks.html и https://docs.authlib.org/en/latest/client/django.html

Постановка проблемы : я пытался передать ключ / значение "scope" и "аудитория"пары в dict client_kwargs, но только ключ / значение "scope" используется для генерации 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.

Вопрос : client_kwargs в oauth.register / AUTHLIB_OAUTH_CLIENTS предназначен только для определенных аргументов ключевого слова? Если это так, было бы здорово поделиться этим в документации;в противном случае было бы удобно установить его в конфигурации вместе со всем остальным.

Такое поведение было обнаружено в 0.12.1 и 0.13.dev0. Спасибо!

1 Ответ

1 голос
/ 20 октября 2019

Поскольку OAuth 1.0 и OAuth 2.0 различаются, эти client_kwargs предназначены для передачи дополнительных параметров либо OAuth1Client / OAuth1Session, либо OAuth2Client / OAuth2Session.

Для вашего случаяесть authorize_params. Вы можете поместить audience в ваш authorize_params:

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