如何为Authlib使用多个作用域

时间:2018-06-27 20:44:20

标签: flask oauth-2.0 scopes authlib

我正在使用Authlib 0.7版。我试图让客户端访问多个范围,我这样做的方式是在创建客户端时,将以空格分隔的字符串作为范围(例如“ A B”)。当我为此客户端生成访问令牌时,其作用域设置为“ A B”。但是,当我尝试访问受范围“ A”保护的资源时(为了保护资源,我添加了@require_oauth('A')),我被拒绝访问并出现http 403错误。希望能帮助我解决此问题的任何建议。 谢谢

1 个答案:

答案 0 :(得分:0)

在多个范围内查看文档:

https://docs.authlib.org/en/latest/flask/2/resource-server.html#multiple-scopes

您可以在AND和OR模式下将多个作用域应用于一个端点。默认为AND模式。

@app.route('/profile')
@require_oauth('profile email', 'AND')
def user_profile():
    user = current_token.user
    return jsonify(user)