Flask Python authlib: come eseguire correttamente il flusso di concessione della password?

Oct 26 2020

Ho accesso "flusso di concessione della password" con l'integrazione del pallone di authlib che funziona bene:

@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

Tuttavia, in una domanda precedente mi è stato consigliato di non utilizzare in fetch_access_tokenquesto modo in quanto non è documentato per l'integrazione del flask e di utilizzare authorize_access_tokeninvece. Questo fallisce con un errorewerkzeug.exceptions.BadRequestKeyError: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand. KeyError: 'code'

Allora qual è il modo corretto di eseguire il "flusso di concessione della password" con l'integrazione del pallone?
Qualsiasi consiglio è ben accetto.

Risposte

Alias_Knagg Nov 05 2020 at 14:57

Per la cronaca, @lepture ha confermato nei commenti sopra che questo uso di fetch_access_tokenè ok.
Inserendo questa risposta qui per poter contrassegnare la domanda come risposta.