Flask Login & SQLAlchemy – Benutzeranmeldung, Authentifizierungssystem
Das Erstellen einer Anwendung mit dem Benutzeranmelde- und Authentifizierungssystem ist eine Grundfunktion im aktuellen Web 3.0-Zeitalter. Lernen Sie mit der Flask-Anmeldung
Benutzerbasiert und kundenorientiert sind im heutigen Geschäftsmodell sehr beliebt. Neben Web 2.0 legt Web 3.0 Wert auf Dezentralisierung und gibt den aktuellen Benutzern mehr Datenbefugnis und Datenverwaltung zurück. Es zeichnet sich also ein Trend zur Benutzerzentralisierung ab, der einfach wichtiger wäre. Wenn Sie also eine Anwendung mit Flask erstellen, ist ein Benutzeranmelde- und Authentifizierungssystem eine Grundfunktion, die sie haben muss. Heute erfahren Sie, wie Sie den Flask-Login-Manager nutzen und einen in Ihre Anwendung integrieren.
Inhaltsverzeichnis: Flask Login System
- Installation und Konfiguration des Flask Login Managers
- Erstellen und konfigurieren Sie die Benutzerdatenbank mit SQLAlchemy und dem Flask-Login UserMixin
- Benutzer Registration
- Flask login_user, logout_user und current_user
- Login_required Dekorateur
- Vollständiges Python-Skript für die Anmeldung und Authentifizierung des Flask-Benutzerkontos
Installation und Konfiguration des Flask Login Managers
Dieses Modul bietet Benutzersitzungsverwaltung in der Flask-Anwendung. Es übernimmt die allgemeinen Aufgaben des Anmeldens und Abmeldens sowie das Speichern der Sitzungen Ihrer Benutzer über längere Zeiträume.
Grundsätzlich können Sie mit dem Flask-Login-Manager die folgenden Dinge tun:
- Speichern Sie die ID des aktiven Benutzers in der Sitzung und ermöglichen Sie eine einfache An- und Abmeldung.
- Ermöglicht Ihnen, die Ansicht auf angemeldete (oder abgemeldete) Benutzer zu beschränken.
- Behandeln Sie die normalerweise knifflige „Angemeldet bleiben“-Funktion.
- Schützen Sie die Sitzungen Ihrer Benutzer vor dem Diebstahl durch Cookie-Diebe.
- Eventuell mit Flask-Principal oder anderen Autorisierungserweiterungen integrieren.
Als Erstes ist die Installation eines Flask-Login-Managers ganz einfach. Wir können pip3 install flask-login
in Ihr Computerterminal eingeben. Anschließend konfigurieren Sie die Flask-Anmeldung mit Ihrer Flask-Anwendung, indem Sie die drei Schritte ausführen:
1. Importieren Sie die Flask-Anmeldemodule
2. Initiieren Sie die LoginManager-Instanz und verbinden Sie sich mit Ihrer App
3. Definieren Sie die Funktion „load_user“, indem Sie die Benutzer-ID zurückgeben
Erstellen und konfigurieren Sie die Benutzerdatenbank mit SQLAlchemy und dem Flask-Login UserMixin
Nr. 1: Wir müssen das SQLAlchemy-Modul importieren und es mit der Flask-Anwendung konfigurieren
Zweitens erstellen Sie eine Klasse „Benutzer“, der die benötigte Datenspalte und die Spezifikation jeder Datenspalte hinzugefügt werden.
Zu guter Letzt müssen wir eine Initiativ-SQLAlchemy-Datenbank erstellen. Im Terminal können wir die Initiative SQLAlchemy-Datenbank erstellen. Bitte verwenden Sie den Anwendungsnamen, den Sie in der Flask-Anwendung erstellt haben, und den Variablennamen, den Sie für die Verbindung mit der Flask-App verwendet haben. Ich verwende hier die App und DB.
Benutzer Registration
Jetzt sind die Zutaten bereit, mit dem Aufbau einer Registrierungsroute für neue Benutzer zu beginnen, die Ihrer Anwendung beitreten können.
Das Wichtigste zuerst: Eine Route ist für die Registrierung der Benutzer unerlässlich.
@app.route("/registration", methods=['GET', 'POST'])
Weitere Informationen zur Flask-Route und zum Sammeln von Übermittlungsdaten aus HTML finden Sie in diesem Artikel
Zweitens müssen wir durch Bezugnahme auf die Benutzerklasse, die wir zuvor erstellt haben, die neuen Benutzereingabedaten aus dem Formular auf der Registrierungsroute mit unserer Datenbankspalte abgleichen. Wenn Ihre Anwendung auch über ein API-Programm verfügt, müssen Sie hier auch die Token-Variable hinzufügen und das vom neuen Benutzer eingegebene Passwort entschlüsseln.
new_user = User(email=email, username=username, password=generate_password_hash(password, method='sha256'), token=token.decode())
Dann können wir new_user hinzufügen und commit()
verwenden, um es zu bestätigen, und es mithilfe der zuvor erstellten Funktion login_user merken.
Weitere Informationen zur Flask JWT API-Bereitstellung finden Sie in diesem Artikel
https://www.easy2digital.com/automation/data/python-tutorial-54-utilize-flask-jwt-to-tokenizer-the-api-user-identity-and-authenticate-users/
Flask login_user, logout_user und current_user
Nach der Erstellung neuer Benutzer stellt Flask Module bereit, die es Entwicklern erleichtern, Anmeldeseiten und Abmeldeseiten zu erstellen und den angemeldeten Benutzer auf Websites zu erkennen.
Als Erstes müssen wir die Module aus flask_login importieren. Ich werde im nächsten Abschnitt über login_required sprechen.
Login_user
Um die Eingabe der Benutzeranmeldeinformationen auf der Anmeldeseite zu überprüfen, können wir prüfen, ob das Benutzerkennwort in den SQLAlchemy-Daten mit dem vom Besucher eingegebenen Kennwort übereinstimmen kann.
Verwenden Sie query.filter_by
in der User-Klasse, um zuerst die E-Mail-Adresse abzugleichen.
Wenn dann das Passwort des abgerufenen E-Mail-Benutzers mit dem Eingabewert aus dem Formular übereinstimmt, wird er angemeldet. Und login_user kann sich diesen Benutzer später in jeder Sitzung vor log_out merken.
Logout_user
Erstellen einer neuen Route für Benutzer, um sich von ihren Konten abzumelden
Aktueller_Benutzer
Dies ist ein äußerst nützliches Modul, da es der Anwendung mitteilt, wer die Seite besucht. Wenn Sie exklusive Inhalte für Mitglieder anbieten oder Inhalte zwischen unbekannten Benutzern und registrierten Benutzern unterscheiden möchten. Dieses Modul erleichtert Ihnen die Bereitstellung und Erstellung der Funktionen.
return render_template("shopify.html", user=current_user)
Um die vorhandenen Benutzer zu erkennen, müssen wir den aktuellen_Benutzer in der render_template jeder Route oder der Routen hinzufügen, auf denen personalisierte Inhalte in der Flask-Anwendung angezeigt werden sollen.
Login_required Dekorateur
Für alle Routen, die nur Mitgliedern offen stehen, müssen Sie den decorator login_required unter der Route hinzufügen. Nehmen Sie beispielsweise die Abmelderoute: Wenn sich ein Benutzer noch nicht angemeldet hat, kann er sich nicht durch die Abmeldeseite klicken, und Sie können eine Flask-Nachricht hinzufügen, um ihn darüber zu informieren, dass er sich zuerst anmelden muss.
@app.route("/logout")
@login_required
def logout():
logout_user()
return redirect(url_for('home'))
Vollständiges Python-Skript für die Anmeldung und Authentifizierung bei Flask
Wenn Sie an den vollständigen Python-Skripten von Kapitel 57 – Erstellen des Benutzerkonto-Anmelde- und Authentifizierungssystems mit Flask, SQLAlchemy, interessiert sind, Bitte abonnieren Sie unseren Newsletter , indem Sie die Nachricht „Kapitel 57“ hinzufügen. . Wir senden Ihnen das Skript umgehend in Ihr Postfach.
Ich wünsche Ihnen viel Spaß beim Lesen von Kapitel 57 – Erstellen des Benutzerkonto-Anmelde- und Authentifizierungssystems mit Flask, SQLAlchemy. Wenn ja, unterstützen Sie uns bitte, indem Sie eine der unten aufgeführten Maßnahmen ergreifen, da dies unserem Kanal immer weiterhilft.
- Unterstützen Sie unseren Kanal und spenden Sie über PayPal ( paypal.me/Easy2digital )
- Abonnieren Sie meinen Kanal und aktivieren Sie die Benachrichtigungsglocke des Easy2Digital-Youtube-Kanals .
- Folgen und liken Sie meine Easy2Digital-Facebook-Seite
- Teilen Sie den Artikel in Ihrem sozialen Netzwerk mit dem Hashtag #easy2digital
- Kaufen Sie Produkte mit dem Easy2Digital 10 % RABATT-Rabattcode ( Easy2DigitalNewBuyers2021)
- Sie melden sich für unseren wöchentlichen Newsletter an, um die neuesten Artikel, Videos und Rabattcodes von Easy2Digital zu erhalten
- Abonnieren Sie unsere monatliche Mitgliedschaft über Patreon, um exklusive Vorteile zu genießen ( www.patreon.com/louisludigital )