值得信赖的客户

时间:2018-09-18 19:18:50

标签: python flask-oauthlib authlib

我需要使用Authlib在SSO中添加受信任的客户端。这些客户端是我系统的一部分,不需要用户确认。现在,我使用下一个授权代码:

@bp.route("/oauth/authorize", methods=['GET', 'POST'])
def authorize():
    user = current_user()
    if not user:
        return redirect('/sign_in')
    if request.method == 'GET':
        grant = server.validate_consent_request(end_user=user)
        return render_template(
            "authorize.html",
            grant=grant,
            user=user
        )
    confirmed = request.form['confirm']
    if confirmed:
        # granted by resource owner
        return server.create_authorization_response(user)
    # denied by resource owner
    return server.create_authorization_response(None)

但是我该如何为所有已被确认的客户预先注册?

1 个答案:

答案 0 :(得分:1)

可以通过以下方式解决:

if request.method == 'GET':
    grant = server.validate_consent_request(end_user=user)
    if is_trust_client(grant.client):
        return server.create_authorization_response(user)

您可以使用grant.client获取客户端模型实例。例如定义一个名为trusted的列,然后可以使用if grant.client.trusted来判断客户端是否受信任,如果可以,则返回授权响应。