


Wie integriert Springboot JWT, um eine Identitätsauthentifizierung zu erreichen?
1. Was ist JWT
JSON Web Token (JWT), es ist derzeit die beliebteste domänenübergreifende Authentifizierungslösung. Die aktuelle Projektentwicklung umfasst im Allgemeinen die Trennung von Front-End und End-End, was domänenübergreifende Probleme und Authentifizierungsprobleme mit sich bringt.
2. JWT-Zusammensetzung
besteht aus drei Teilen: Header, Nutzlast und Signatur
Header:
Header-Informationen bestehen aus zwei Teilen: 1. Der Typ des Tokens, also JWT; 2. Der Signaturalgorithmus B. HMASSHA256 oder RSA; Das Typ-Attribut in diesem JSON wird verwendet, um zu identifizieren, dass es sich bei der gesamten Token-Zeichenfolge um eine JWT-Zeichenfolge handelt Die Attribute typ und alg sind eigentlich Typalgorithmen, was Typ bzw. Algorithmus bedeutet. Der Grund, warum sie durch drei Buchstaben dargestellt werden, basiert auch auf der Berücksichtigung der endgültigen Zeichenfolgengröße von JWT. Sie stimmt auch mit dem Namen von JWT überein, sodass es sich bei allen um drei Zeichen handelt ... typ und alg sind die in angegebenen Attribute der JWT-Standardname.
Payload:Payload wird verwendet, um die zu übertragenden Daten zu übertragen. Diese Anweisungen werden vom JWT-Standard als Ansprüche bezeichnet „Attribut-Wert-Paar“ ist eigentlich ein Anspruch (Anforderung), und jeder Anspruch repräsentiert eine bestimmte Bedeutung und Funktion.
Wir können einige Geschäftsinformationen in den Anspruch aufnehmen.
Signatur (Signatur):Die Signatur besteht aus den beiden Zeichenfolgen, die nach der Base64URL-Codierung der dem Header und der Nutzlast entsprechenden JSON-Struktur erhalten, mit „englischem Punkt“ zusammengefügt und dann gemäß dem angegebenen Signaturalgorithmus generiert werden von alg im Header von.
Unterschiedliche Algorithmen führen zu unterschiedlichen Signaturergebnissen. Nehmen Sie alg: HS256 als Beispiel, um zu veranschaulichen, wie Sie die vorherige Signatur erhalten.
Gemäß der vorherigen Beschreibung der verfügbaren Werte von alg enthält HS256 tatsächlich zwei Algorithmen: den HMAC-Algorithmus und den SHA256-Algorithmus. Der erstere wird zum Generieren eines Digests und der letztere zum digitalen Signieren des Digests verwendet. Diese beiden Algorithmen können zusammen auch als HMACSHA256
jwt-Datenstrukturdiagramm bezeichnet werden:
3. JWT-Funktionsprinzip
1. Die erste gesendete Anmeldeanforderung enthält zwangsläufig Benutzerinformationen uname und pwd
2 Die Benutzerinformationen uname und pwd wurden erfolgreich angemeldet. Die Benutzerinformationen werden über die JWT-Tool-Klasse in eine verschlüsselte Zeichenfolge generiert
3. Die verschlüsselte Zeichenfolge wird in Form eines Antwortheaders an das Frontend gesendet
4 . Der Front-End-Server antwortet, fängt die im Antwortheader enthaltene JWT-Zeichenfolge ab und fügt sie in Vuex ein.
5 Wenn die zweite Anfrage gestellt wird, gibt es einen Anforderungs-Interceptor im Front-End-Server. Dadurch wird die JWT-Zeichenfolge in Vuex in den Anforderungsheader der Anforderung eingefügt.
6 Wenn die Anforderung den Backend-Server über eine domänenübergreifende Methode erreicht, gibt es auf dem Backend-Server einen weiteren Filter, der die JWT-Zeichenfolge im abfängt Anforderungsheader. 7. Die JWT-Tool-Klasse analysiert die JWT-Zeichenfolge und überprüft sie schließlich
4. Springboot integriert JWT
Gesamtidee:
Wenn das Front-End auf die Backend-Anmeldeschnittstelle zugreift, Es bestimmt zunächst anhand des Benutzernamens und des Kennworts, ob der Benutzer in der Benutzertabelle vorhanden ist. Wenn der Benutzer vorhanden ist, können Sie zum Generieren einer JWT-Zeichenfolge einige Geschäftsinformationen hinzufügen (z. B. Anmeldekonto, richtiger Name des Benutzers usw.). zum JWT-String hinzufügen und den JWT-String an das Front-End zurückgeben
Das aktuelle Ende ruft den JWT-String ab und fügt ihn in den Header aller Anforderungen ein, z. B. token=jwt-String
Entwickeln Sie im Backend einen Filter, um alle abzufangen Anfragen (mit Ausnahme von Anmeldeanfragen, da die Anmeldeanforderung kein JWT generiert hat) und JWT (dh den Wert des Tokens) aus dem Header der Anforderung abrufen und die JWT-Prüfsumme überprüfen, Geschäftsinformationen im JWT abrufen und einfügen Die Geschäftsinformationen im Header der Anfrage, sodass die Back-End-Schnittstelle sie direkt aus dem Header abrufen kann. Wenn das JWT im Filter abläuft oder die Überprüfung fehlschlägt, wird eine Eingabeaufforderung an das Front-End zurückgegeben Das Frontend zeigt die Anmeldeseite an, damit sich Benutzer erneut anmelden können.
1. Abhängigkeiten in pom einführen.
Das obige ist der detaillierte Inhalt vonWie integriert Springboot JWT, um eine Identitätsauthentifizierung zu erreichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Einführung in Jasypt Jasypt ist eine Java-Bibliothek, die es einem Entwickler ermöglicht, seinem Projekt mit minimalem Aufwand grundlegende Verschlüsselungsfunktionen hinzuzufügen und kein tiefes Verständnis der Funktionsweise der Verschlüsselung erfordert. standardbasierte Verschlüsselungstechnologie. Passwörter, Text, Zahlen, Binärdateien verschlüsseln ... Geeignet für die Integration in Spring-basierte Anwendungen, offene API, zur Verwendung mit jedem JCE-Anbieter ... Fügen Sie die folgende Abhängigkeit hinzu: com.github.ulisesbocchiojasypt-spring-boot-starter2 Die Vorteile von Jasypt schützen unsere Systemsicherheit. Selbst wenn der Code durchgesickert ist, kann die Datenquelle garantiert werden.

1. Redis implementiert das Prinzip der verteilten Sperren und warum verteilte Sperren erforderlich sind. Bevor über verteilte Sperren gesprochen wird, muss erläutert werden, warum verteilte Sperren erforderlich sind. Das Gegenteil von verteilten Sperren sind eigenständige Sperren. Wenn wir Multithread-Programme schreiben, vermeiden wir Datenprobleme, die durch den gleichzeitigen Betrieb einer gemeinsam genutzten Variablen verursacht werden. Normalerweise verwenden wir eine Sperre, um die Richtigkeit der gemeinsam genutzten Variablen sicherzustellen Die gemeinsam genutzten Variablen liegen im gleichen Prozess. Wenn es mehrere Prozesse gibt, die gleichzeitig eine gemeinsam genutzte Ressource betreiben müssen, wie können sie sich dann gegenseitig ausschließen? Heutige Geschäftsanwendungen sind in der Regel Microservice-Architekturen, was auch bedeutet, dass eine Anwendung mehrere Prozesse bereitstellen muss. Wenn mehrere Prozesse dieselbe Datensatzzeile in MySQL ändern müssen, ist eine Verteilung erforderlich, um fehlerhafte Daten zu vermeiden wird zu diesem Zeitpunkt eingeführt. Der Stil ist gesperrt. Punkte erreichen wollen

Springboot liest die Datei, kann aber nach dem Packen in ein JAR-Paket nicht auf die neueste Entwicklung zugreifen. Es gibt eine Situation, in der Springboot die Datei nach dem Packen in ein JAR-Paket nicht lesen kann ist ungültig und kann nur über den Stream gelesen werden. Die Datei befindet sich unter resources publicvoidtest(){Listnames=newArrayList();InputStreamReaderread=null;try{ClassPathResourceresource=newClassPathResource("name.txt");Input

Mit der Entwicklung des Internets müssen immer mehr Websites und Anwendungen API-Schnittstellen für die Dateninteraktion bereitstellen. In diesem Fall werden API-Authentifizierung und -Verschlüsselung zu sehr wichtigen Themen. Als beliebte Authentifizierungs- und Verschlüsselungsmechanismen werden JWT und JWE zunehmend in PHP verwendet. In diesem Artikel wird erläutert, wie Sie JWT und JWE für die API-Authentifizierung und -Verschlüsselung in PHP verwenden. Grundkonzepte von JWT JWT steht für JSONWe

JWT (JSONWebToken) ist ein einfacher Authentifizierungs- und Autorisierungsmechanismus, der JSON-Objekte als Sicherheitstoken verwendet, um Benutzeridentitätsinformationen sicher zwischen mehreren Systemen zu übertragen. ThinkPHP6 ist ein effizientes und flexibles MVC-Framework, das auf der PHP-Sprache basiert. Es bietet viele nützliche Tools und Funktionen, einschließlich des JWT-Authentifizierungsmechanismus. In diesem Artikel stellen wir vor, wie Sie ThinkPHP6 für die JWT-Authentifizierung verwenden, um die Sicherheit und Zuverlässigkeit von Webanwendungen zu gewährleisten

Wenn Springboot + Mybatis-plus keine SQL-Anweisungen zum Hinzufügen mehrerer Tabellen verwendet, werden die Probleme, auf die ich gestoßen bin, durch die Simulation des Denkens in der Testumgebung zerlegt: Erstellen Sie ein BrandDTO-Objekt mit Parametern, um die Übergabe von Parametern an den Hintergrund zu simulieren dass es äußerst schwierig ist, Multi-Table-Operationen in Mybatis-plus durchzuführen. Wenn Sie keine Tools wie Mybatis-plus-join verwenden, können Sie nur die entsprechende Mapper.xml-Datei konfigurieren und die stinkende und lange ResultMap konfigurieren Schreiben Sie die entsprechende SQL-Anweisung. Obwohl diese Methode umständlich erscheint, ist sie äußerst flexibel und ermöglicht es uns

SpringBoot und SpringMVC sind beide häufig verwendete Frameworks in der Java-Entwicklung, es gibt jedoch einige offensichtliche Unterschiede zwischen ihnen. In diesem Artikel werden die Funktionen und Verwendungsmöglichkeiten dieser beiden Frameworks untersucht und ihre Unterschiede verglichen. Lassen Sie uns zunächst etwas über SpringBoot lernen. SpringBoot wurde vom Pivotal-Team entwickelt, um die Erstellung und Bereitstellung von Anwendungen auf Basis des Spring-Frameworks zu vereinfachen. Es bietet eine schnelle und einfache Möglichkeit, eigenständige, ausführbare Dateien zu erstellen

1. Passen Sie den RedisTemplate1.1-Standard-Serialisierungsmechanismus an. Die API-basierte Redis-Cache-Implementierung verwendet die RedisTemplate-Vorlage für Daten-Caching-Vorgänge. Öffnen Sie hier die RedisTemplate-Klasse und zeigen Sie die Quellcodeinformationen der Klasse publicclassRedisTemplateextendsRedisAccessorimplementsRedisOperations an. Schlüssel deklarieren, verschiedene Serialisierungsmethoden des Werts, der Anfangswert ist leer @NullableprivateRedisSe
