值得信赖的客户

Trusted clients

我需要使用 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)

但是我怎样才能预先注册我所有的客户,以便他们自动确认?

可以通过以下方式解决:

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 来判断客户端是否受信任,如果是,则 return 授权响应。