Sto tentando di consentire agli utenti di accedere all'app Flask utilizzando i loro account da un servizio Web separato. Posso contattare l'API di questo servizio web e ricevere un token di sicurezza. Come posso utilizzare questo token per autenticare gli utenti in modo che possano accedere a viste con restrizioni?Come si implementa l'autenticazione del token in Flask?
Non è necessario salvare gli utenti nel mio database. Voglio solo autenticarli per una sessione. Credo che questo possa essere fatto usando Flask-Security e il decoratore @auth_token_required ma la documentazione non è molto dettagliata e non sono sicuro di come implementarla.
EDIT:
Ecco un esempio di codice:
@main.route("/login", methods=["GET", "POST"])
def login():
payload = {"User": "john", "Password": "password123"}
url = "http://webserviceexample/api/login"
headers = {'content-type': 'application/json'})
#login to web service
r = requests.post(url, headers=headers, json=payload)
response = r.json()
if (r.status_code is 200):
token = response['user']['authentication_token']
# allow user into protected view
return render_template("login.html", form=form)
@main.route('/protected')
@auth_token_required
def protected():
return render_template('protected.html')
È necessario memorizzare gli utenti con il token; e confermare la validità del token contro il servizio. Altrimenti dovrai autenticare i visitatori ogni volta contro il servizio di terze parti ogni volta che iniziano. –
Ogni volta intendi per ogni sessione? Se è così, va bene che avrebbero dovuto autenticarsi di nuovo. C'è una ragione per cui questo sarebbe un problema? – Amerikaner