Flask JWT: Zur Tokenisierung der Benutzeridentität und zur Authentifizierung von API-Benutzern verwenden
Nutzen Sie Flask JWT, um die Identität Ihres Mitglieds oder Benutzers zu tokenisieren und zur Authentifizierung zu verwenden. Es dient dem Datenaustausch und UX
In diesem Kapitel würde ich darüber sprechen, wie Sie Flask JWT nutzen können, um die Identität Ihres Mitglieds oder Benutzers zu tokenisieren und zur Authentifizierung zu verwenden. Es handelt sich um eine äußerst verbreitete und hilfreiche Methode zum Datenaustausch und zur Verbesserung der Benutzererfahrung. Es ist in jedem Sektor anpassbar, beispielsweise im digitalen Marketing, E-Commerce, SaaS, Medien und Datengeschäft.
Inhaltsverzeichnis: Verwenden Sie Flask JWT, um Benutzeridentitäten zu token
- Warum Ihre API eine Token-Authentifizierung benötigt
- Was ist Flask JWT?
- Tokenisierungs-Roadmap
- Token-Spalte, Kodierung und Dekodierung
- Eine Token-erforderliche Funktion – Wraps und Decodierung
- Vollständiges Python-Skript des Flask JWT-Beispiels
Warum Ihre API eine Token-Authentifizierung benötigt
Als Entwickler oder Verkäufer von digitalem Inventar ist es eine der wichtigsten täglichen Aufgaben, sicherzustellen, dass die Authentifizierung der Benutzeridentität reibungslos verläuft, um das Unternehmen oder die Anwendungen zu schützen. Darüber hinaus möchte ein Datenbestandsverkäufer niemanden sehen, der unbegrenzt oder im Rahmen eines Tracking-Systems auf die API zugreifen kann. Das ist einfach der Grund, warum wir aus Sicherheits- und Geschäftssicht eine API-Token-Authentifizierung benötigen.
Im Hinblick auf die Benutzerfreundlichkeit hoffen Sie, dass sich Ihre API-Benutzer bei ihren API-Konten anmelden können, indem sie einfach ein Token im API-Endpunkt hinzufügen. Oder über ein API-Token können sie auf relevante analysierte Daten zugreifen, diese mit den Anwendungen verbinden und personalisierte Benutzererlebnisse genießen. Es ist ein nahtloser, schneller und sicherer Weg.
Alles in allem ist die Tokenisierung der Benutzeridentität entscheidend, hilfreich und effizient für den Datenaustausch und die Kommunikation, unabhängig davon, in welchen Sektoren Sie tätig sind. Insbesondere treten wir in die Ära ohne Cookies und in eine größere Wall-Garden-Ära ein.
Was ist Flask JWT?
Bevor wir uns näher mit dem JWT befassen, müssen wir zunächst wissen, was eine Flasche ist. Im Wesentlichen ist Flask ein Python-basiertes Mikro-Framework, das zum Erstellen der Rest-API verwendet wird. Die Kernidee des Flask-Frameworks besteht darin, die Dinge einfach, aber erweiterbar zu halten. Es ermöglicht Entwicklern, je nach Präferenz benutzerdefinierte Erweiterungen für die Datenbankintegration, Authentifizierung, Sitzungsverwaltung und alle anderen Backend-Systeme hinzuzufügen.
Zuvor habe ich über Flask gesprochen, um eine Shopify-Bot-Anwendung zu erstellen. Wenn Sie interessiert sind, schauen Sie sich bitte dieses Stück an.
https://www.easy2digital.com/automation/data/python-tutorial-26-create-a-shopify-bot-web-application-using-flask-and-heroku/
JSON Web Tokens (JWT) sind eine sichere und kompakte Möglichkeit, Daten zwischen zwei Parteien mithilfe von JSON-Objekten zu übertragen. Wenn Ihre Anwendung also mit Flask erstellt wird, ist JWT im Wesentlichen eine beliebte Option für Sie, um eine token_required-API oder einen Benutzerzugriff zu erstellen.
JSON verwendet zwei unterschiedliche Strukturtypen zur Datenübertragung. Einer ist serialisiert. Dieser Typ wird verwendet, wenn Sie über jede Anfrage und Antwort Informationen an das Netzwerk übertragen. Es enthält eine Nutzlast, einen Header und eine Signatur.
Der andere ist deserialisiert. Dieser Typ wird verwendet, wenn Sie Informationen zum Token lesen/schreiben. Es enthält eine Nutzlast und einen Header.
Ich habe zuvor versucht, es mit YAML zu vergleichen. Bitte schauen Sie sich diesen Artikel an, wenn Sie mehr erfahren möchten.
Tokenisierungs-Roadmap
Wie bereits erwähnt, dient JWT als erster ursprünglicher Zweck der Benutzerauthentifizierung. Grundsätzlich gibt es also drei Hauptschritte in der Roadmap für die gesamte Generation.
- Erstellen Sie eine Token-Spalte in der Benutzerdatenbank, die mit sqlalchemy erstellt wurde
- Codieren Sie ein neues Registrierungsbenutzertoken aus der Benutzerregistrierungsaktion
- Erstellen Sie eine token_required-Funktion, die auf alle Flask-Routen angewendet werden kann, die eine gewünschte Benutzerauthentifizierung erfordern
Token-Spalte, Kodieren und Dekodieren
Ich würde zum Beispiel sqlalchemy nehmen. Als Erstes müssen wir eine Spalte zum Speichern des eindeutigen Tokens hinzufügen, den jeder Benutzer hat. Für die Benennung können wir beispielsweise „Token“ festlegen. Aber es hängt von Ihren Vorlieben ab. Für weitere Details zur Flask-Datenbank werde ich einen weiteren Artikel veröffentlichen.
Schritt Nr. 2 besteht darin, die JWT-Kodierungsmethode in die Route für die neue Benutzeranmeldung einzufügen. Das liegt daran, dass wir jedem neuen Benutzer nach Abschluss der Registrierung ein eindeutiges API-Token zuweisen möchten. Hier wähle ich nur den Einladungscode aus, den wir dem Benutzer zur Anmeldung als Referenz für die Token-Kodierung senden. Sie können entweder einen anderen Referenzpunkt verwenden oder die Komplexität durch die Verwendung mehrerer Referenzpunkte erhöhen.
Zu guter Letzt verwenden wir die Datenbankbenutzerklassenmethode, um das neue Token dem neuen Benutzer hinzuzufügen. Es ist einzigartig für sie oder ihn.
Token erforderlich – Wraps und Dekodierung
Jetzt kann die für das Token erforderliche Funktion erstellt werden. Wir benötigen dies, weil wir es allen Routen zuweisen müssen, für die wir eine Benutzerauthentifizierung benötigen. Der Zweck ist genauso gut wie login_required.
Bei dieser Funktion besteht die Schlüsselkomponente darin, den Token zu entschlüsseln und zu prüfen, ob der Wert mit dem Wert übereinstimmt, der bei der vorherigen Neuanmeldung erstellt wurde.
Bevor wir zum Dekodierungsabschnitt kommen, müssen wir ein Modul importieren, das Funktools und Wraps ausführt.
Die Wraps-Funktion ist Teil des Functools-Moduls von Python. Es umschließt und aktualisiert die Wrapper-Funktion des Dekorators, indem es Attribute wie _name__, __doc__, den Dokumentstring usw. kopiert.
def token_required(f):
@wraps(f)
def decorate(*args, **kwargs):
Sie können Wraps als Dekorateur verwenden, um Dokumentzeichenfolgen und Namen dekorierter Funktionen zu korrigieren. Warum ist das wichtig? Das hört sich zunächst wie ein seltsamer Grenzfall an, aber wenn Sie eine API oder Code schreiben, den jemand anderes als Sie selbst verwendet, könnte dies wichtig sein. Der Grund dafür ist, dass eine dekorierte Funktion die falschen Informationen zurückgibt, wenn Sie die Selbstbeobachtung von Python verwenden, um den Code einer anderen Person herauszufinden.
Zwei Komponenten
Als Erstes müssen wir einen Token-Parameter zu unserem API-Endpunkt hinzufügen und ihn benennen, beispielsweise einen Token. Wenn Benutzer die API aufrufen, fügen sie ihre eindeutigen Token in diesem Parameter hinzu, z. B. www.abe.com?token=12324343
token = request.args.get('token')
Dann können wir eine Bedingung erstellen, wenn das Token fehlt oder ungültig ist, oder korrigieren. Für den korrekten Status muss beispielsweise das dekodierte Token mit der public_id übereinstimmen, die bei der Benutzeranmeldung erstellt wurde. Wir könnten also die Datenbank abfragen, indem wir die öffentliche_ID des Benutzers herausfiltern.
Wenn die ID nicht mit dem dekodierten Token übereinstimmt, ist die Antwortnachricht ungültig. Oder wenn dem API-Endpunkt das Token fehlt, lautet die Antwortmeldung, dass das Token fehlt. Dadurch wird sichergestellt, dass jeder, der die API verwendet, authentifiziert wurde.
Vollständige Python-Skriptbeispiele von Flask JWT
Wenn Sie am vollständigen Python-Skript von Kapitel 54 – Flask JWT zum Tokenisieren von Benutzeridentitäten und Authentifizieren von Benutzern verwenden interessiert sind, Bitte abonnieren Sie unseren Newsletter , indem Sie die Nachricht „Kapitel 54“ hinzufügen. . Wir senden Ihnen das Skript umgehend in Ihr Postfach.
Ich wünsche Ihnen viel Spaß beim Lesen von Kapitel 54 – Verwenden Sie Flask JWT, um Benutzeridentitäten zu tokenisieren und Benutzer zu authentifizieren. 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