OAuth后验证重新登录

时间:2017-02-05 19:06:09

标签: python flask oauth flask-oauthlib

一旦用户访问了提供商并授予了对我的Web应用程序的访问权限,我就收到了一些我在该用户下存储在Postgres中的令牌。一旦用户退出,然后在将来某个时间想要重新登录并点击"使用X"登录我如何记录它们而不是将它们转发到"授权此应用程序"再次翻页?

Python 3.5

烧瓶

烧瓶的OAuth

烧瓶登录

如果您有任何疑问,请与我们联系。干杯

1 个答案:

答案 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'