Отсутствует область действия на стороне сервера при использовании OAuthClient из Authlib - PullRequest
0 голосов
/ 16 октября 2018

Когда я использую любой из стандартных клиентов, согласно документации, я передаю ключ области в аргументе client_kwargs.

# Example config.py for Flask application
HAMSTER_API_BASE_URL = 'http://api:5000/'
HAMSTER_ACCESS_TOKEN_URL = 'http://api:5000/oauth/token'
HAMSTER_CLIENT_ID = 'CLIENT'
HAMSTER_CLIENT_SECRET = 'SECRET'
HAMSTER_CLIENT_KWARGS = {
    'grant_type': 'client_credentials',
    'scope': 'api'
}

Серверная часть также реализуется с использованием Authlib.При попытке получить токен с помощью гранта ClientCredentialsGrant область действия на стороне сервера теряется.В результате токен не работает, сервер выдает его, но без области.

from authlib.flask.client import OAuth

def fetch_hamster_token():
    name = 'hamster'
    token = OAuth2Token.get(name=name)

    if token:
        delta = token.expires_at - datetime.now().timestamp()

        if delta > 60:
            return token.to_token()

    token = getattr(oauth, name).fetch_access_token(timeout=30)
    save_hamster_token(token)
    return token

oauth = OAuth()
oauth.register('hamster', fetch_token=fetch_hamster_token)

Если вы используете curl, то эта проблема не наблюдается.

Что я делаю не так?И извините за гугл переводчик

...