使用 lepture/authlib 获取 refresh_token
Getting refresh_token with lepture/authlib
我正在使用 Authlib,并试图从 Hydra 服务器获取 refresh_token。我有以下代码:
from authlib.client import OAuth2Session
client_id = "my-client"
client_secret = "client secret"
token_url = "https://myhydraserver/token"
scope = 'openid email profile offline'
session = OAuth2Session(client_id, client_secret, scope=scope)
token = session.fetch_access_token(token_url)
print(token)
这会打印出
{'access_token': 'the-token', 'expires_in': 3599, 'scope': '', 'token_type': 'bearer', 'expires_at': 1519224804}
从文档中,我看到有一个函数可以从 refresh_token 获取访问令牌,但首先找不到获取 refresh_token 的方法。我将如何获得 refresh_token? Hydra 的配置为:
--grant-types authorization_code,refresh_token,client_credentials,implicit
--response-types token,code,id_token
应该分发 refresh_tokens。
client_credentials
不会发布刷新令牌。您需要使用 authorization_code 流程来获取刷新令牌。
https://docs.authlib.org/en/latest/client/oauth2.html#oauth2session-for-authorization-code
我正在使用 Authlib,并试图从 Hydra 服务器获取 refresh_token。我有以下代码:
from authlib.client import OAuth2Session
client_id = "my-client"
client_secret = "client secret"
token_url = "https://myhydraserver/token"
scope = 'openid email profile offline'
session = OAuth2Session(client_id, client_secret, scope=scope)
token = session.fetch_access_token(token_url)
print(token)
这会打印出
{'access_token': 'the-token', 'expires_in': 3599, 'scope': '', 'token_type': 'bearer', 'expires_at': 1519224804}
从文档中,我看到有一个函数可以从 refresh_token 获取访问令牌,但首先找不到获取 refresh_token 的方法。我将如何获得 refresh_token? Hydra 的配置为:
--grant-types authorization_code,refresh_token,client_credentials,implicit
--response-types token,code,id_token
应该分发 refresh_tokens。
client_credentials
不会发布刷新令牌。您需要使用 authorization_code 流程来获取刷新令牌。
https://docs.authlib.org/en/latest/client/oauth2.html#oauth2session-for-authorization-code