我需要使用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)
但是我该如何为所有已被确认的客户预先注册?
答案 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
来判断客户端是否受信任,如果可以,则返回授权响应。