一旦用户访问了提供商并授予了对我的Web应用程序的访问权限,我就收到了一些我在该用户下存储在Postgres中的令牌。一旦用户退出,然后在将来某个时间想要重新登录并点击"使用X"登录我如何记录它们而不是将它们转发到"授权此应用程序"再次翻页?
Python 3.5
烧瓶
烧瓶的OAuth
烧瓶登录
如果您有任何疑问,请与我们联系。干杯
答案 0 :(得分:0)
搜索您的OAuth authorize_handler。此函数可以返回呈现的HTML页面以显示用户或布尔值以确认用户是否授权该应用程序。您可以检查您的数据库是否已经有给定客户端和用户的持有者令牌,如果存在,则返回True
。这是来自Flask-OAuthlib文档的修改后的example:
@app.route('/oauth/authorize', methods=['GET', 'POST'])
@require_login
@oauth.authorize_handler
def authorize(*args, **kwargs):
if request.method == 'GET':
client_id = kwargs.get('client_id')
client = Client.query.filter_by(client_id=client_id).first()
# Getting user object
user = current_user()
# Getting tokens for this user and client
tokens = BearerToken.query.filter_by(client_id=client_id, user_id=user.id)
for token in tokens:
# Checking if requested scopes are within given token scopes
if set(token.scopes) >= set(kwargs['scopes']):
return True
kwargs['client'] = client
return render_template('oauthorize.html', **kwargs)
confirm = request.form.get('confirm', 'no')
return confirm == 'yes'