Ich versuche Benutzern zu erlauben, sich über einen separaten Web-Service bei ihrer Flask-App mit ihren Konten anzumelden. Ich kann die API dieses Web-Service kontaktieren und ein Sicherheits-Token erhalten. Wie verwende ich dieses Token, um Benutzer zu authentifizieren, sodass sie Zugriff auf eingeschränkte Ansichten haben?Wie implementieren Sie Token-Authentifizierung in Flask?
Ich brauche nicht Benutzer in meine eigene Datenbank zu speichern. Ich möchte sie nur für eine Sitzung authentifizieren. Ich glaube, dass dies mit Flask-Security und dem @auth_token_required Decorator gemacht werden kann, aber die Dokumentation ist nicht sehr detailliert und ich bin mir nicht sicher, wie ich das umsetzen soll.
EDIT:
Hier ist ein Codebeispiel:
@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')
Sie müssen die Benutzer mit dem Token speichern; und bestätigen Sie die Gültigkeit des Tokens für den Dienst. Andernfalls müssen Sie die Besucher jedes Mal gegen den 3rd-Party-Service authentifizieren, wenn sie starten. –
Mit jeder Zeit meinen Sie für jede Sitzung? Wenn ja, ist das in Ordnung, dass sie sich erneut authentifizieren müssten. Gibt es einen Grund, dass dies ein Problem wäre? – Amerikaner