Доверенные клиенты - PullRequest
       35

Доверенные клиенты

0 голосов
/ 18 сентября 2018

Мне нужно добавить доверенных клиентов в SSO, используя Authlib.Эти клиенты являются частью моей системы, и мне не нужно, чтобы пользователь подтвердил это.Теперь я использую следующий код для авторизации:

@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 голосов
/ 19 сентября 2018

Это можно решить с помощью:

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, чтобы определить, является ли клиент доверенным, и если да, вернуть ответ об авторизации.

...