0

一旦用户转到提供者并授予对我的 Web 应用程序的访问权限,我就会收到一些我存储在 Postgres 中的该用户下的令牌。一旦用户注销,然后在未来某个时间想要重新登录并单击“使用 X 登录”,我该如何让他们登录而不再次将他们转发到“授权此应用程序”页面?

蟒蛇 3.5

烧瓶

Flask-OAuth

烧瓶登录

如果您有任何问题,请告诉我。干杯

4

1 回答 1

0

搜索您的 OAuth authorize_handler。此函数可能会返回呈现的 HTML 页面以显示用户或布尔值以确认用户是否授权应用程序。您可以检查您的数据库是否已经具有给定客户端和用户的不记名令牌,True如果存在则返回。这是来自 Flask-OAuthlib 文档的修改示例:

@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'
于 2017-02-06T08:59:22.907 回答