Python 3.x authlib在使用客户端凭据时是否支持刷新我的访问令牌?
我是authlib新手,在查看文档时,它提到它支持Python 3.x authlib在使用客户端凭据时是否支持刷新我的访问令牌?,python-3.x,oauth-2.0,authlib,Python 3.x,Oauth 2.0,Authlib,我是authlib新手,在查看文档时,它提到它支持passwordgrant\u类型的“自动刷新” 我想知道库是否能够在使用client\u凭据时检测当前关联的令牌何时过期,然后为我请求一个新的访问令牌。(为我跳整个OAuth舞) 检查我需要做的每一个电话,检查我是否得到了401,然后触发获取新代币的动作,这看起来很难看 这里有没有最佳实践可以遵循?是否可以以某种方式将其添加为装饰器?它将自动刷新您的令牌,下面是代码: 为了给前面的答案增添一些味道,我能够让refresh\u token函数为最
password
grant\u类型的“自动刷新”
我想知道库是否能够在使用client\u凭据时检测当前关联的令牌何时过期,然后为我请求一个新的访问令牌。(为我跳整个OAuth舞)
检查我需要做的每一个电话,检查我是否得到了401,然后触发获取新代币的动作,这看起来很难看
这里有没有最佳实践可以遵循?是否可以以某种方式将其添加为装饰器?它将自动刷新您的令牌,下面是代码:
为了给前面的答案增添一些味道,我能够让refresh\u token函数为最近的API集成工作
这有一些特殊之处,我必须在refresh\u令牌调用中传递client\u id和client\u secret。我还必须设置grant_类型。这些可能不适用于您尝试使用的API
from authlib.integrations.requests_client import OAuth2Session
my_token = {'refresh_token':current_refresh_token,
'access_token': current_access_token,
'expires_at': current_access_token_expires_at,
'expires_in': current_access_token_expires_in}
oauth_session = OAuth2Session(CLIENT_ID,CLIENT_SECRET,
authorization_endpoint=AUTH_ENDPOINT,
token_endpoint=TOKEN_ENDPOINT,
token=my_token,
grant_type='refresh_token')
new_token = oauth_session.refresh_token(
url=REFRESH_TOKEN_URL,
client_id=CLIENT_ID,
client_secret=CLIENT_SECRET)