使用Authlib中的OAuthClient时服务器端缺少作用域

时间:2018-10-15 23:35:06

标签: python authlib

根据文档,当我使用任何标准客户端时,我会在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)

如果使用卷曲,则不会出现此问题。

我在做什么错?对不起,Google翻译人员

0 个答案:

没有答案