Python oauth/flask, как передать аргументы из декорированной функции

Мне нужно вызвать метод @oauth.token_handler из колбы. Подпись выглядит следующим образом:

@oauth.token_handler
def access_token(*args, **kwargs):
    return None

Поэтому он вызывает внутреннюю реализацию token_handler(). Я пытаюсь позвонить

response = access_token("", {'grant_type':'password'})

Желая, чтобы oauth мог получить аргументы в методе, но это не работает.

400 {"error": "unsupported_grant_type"}

Oauth не найти данные (без удивления для меня)

Когда метод завитка работает как положено:

curl -k -X POST -d "client_id=f9O7kapzXnK1gYAxxxxxxx&grant_type=password&username=blah&password=pass" http://localhost:5001/oauth/token

Мой вопрос заключается в том, как имитировать этот вызов oauth внутри, чтобы он мог получить всю информацию (grant_type, client_id и т. Д.). Потому что на данный момент я попытался без удачи.

Примечание: я знаю, что oauth следует вызывать со стороны клиента; Но здесь процесс состоит в том, что человек отправляет мне свои учетные данные провайдера для его / ее идентификационного профиля, я проверяю, в порядке ли эти учетные данные, и затем я создаю внутреннюю учетную запись с моим собственным поставщиком oauth и отправляю им access_token Ресурс моего приложения. Моя проблема здесь в том, что я не знаю, как вызвать access_token() с правильным параметром. Настой не может найти мои аргументы.

Документ можно найти здесь: http://flask-oauthlib.readthedocs.io/en/latest/api.html

1 ответ

Я автор Flask-OAuthlib. Я должен сказать, что он не очень хорошо разработан, я настоятельно рекомендую вам использовать Authlib. Вот пример поставщика OAuth 2.

Другие вопросы по тегам