Python Authlib Flask - Wie wird der Passwort-Grant-Flow korrekt ausgeführt?

Oct 26 2020

Ich habe "Passwort Grant Flow" Login mit der Authlib Flask Integration funktioniert gut:

@app.route('/login', methods=('GET', 'POST'))
def login():
    if request.method == 'GET':
        return render_template('login.html')
    else:
        try:
            token = oauth.myOauth2.fetch_access_token(username=request.form.get('username'),
                                                      password=request.form.get('password'))
        except OAuthError as e:
            if e.description:
                flash(e.description)
                return render_template('login.html')
            raise

In einer früheren Frage wurde mir jedoch geraten, diese nicht zu verwenden, fetch_access_tokenda sie für die Kolbenintegration nicht dokumentiert ist, und authorize_access_tokenstattdessen zu verwenden . Dies schlägt mit einem Fehler fehlwerkzeug.exceptions.BadRequestKeyError: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand. KeyError: 'code'

Was ist also der richtige Weg, um mit der Kolbenintegration einen "Passwort-Grant-Flow" durchzuführen?
Jeder Rat ist willkommen.

Antworten

Alias_Knagg Nov 05 2020 at 14:57

Für die Aufzeichnung bestätigte @lepture in den obigen Kommentaren, dass diese Verwendung von in Ordnungfetch_access_token ist.
Geben Sie diese Antwort hier ein, um die Frage als beantwortet markieren zu können.