OAuth 2关于刷新和自动访问令牌的客户端文档对于各种参数的语义并不清楚。
refresh_token & access_token什么时候通过?提供的例子也不清楚。
def update_token(token, refresh_token=None, access_token=None):
if refresh_token:
item = OAuth2Token.find(name=name, refresh_token=refresh_token)
elif access_token:
item = OAuth2Token.find(name=name, access_token=access_token)
else:
return
# update old token
item.access_token = token['access_token']
item.refresh_token = token.get('refresh_token')
item.expires_at = token['expires_at']
item.save()虽然我不这么认为,但是OAuth2Token看起来像是对authlib.oauth2.rfc6749.OAuth2Token类的引用。尽管名称类似,我们是否应该设想它是一个自定义ORM类,由库用户自己编写呢?这件事没说出来。
发布于 2021-02-24 06:56:44
是的,OAuth2Token是一个假的模型类。在Django,可能是:
OAuth2Token.objects.get(name=name, refresh_token=refresh_token)使用SQLAlchemy,它可以是:
OAuth2Token.query.filter_by(name=name, refresh_token=refresh_token).first()这个update_token是一个钩子函数,它将在令牌更新时被调用。在令牌更新过程中,客户端/会话将自动传递刷新令牌或访问令牌。
https://stackoverflow.com/questions/66308415
复制相似问题