Was ist NodeJS JWT?
In NodeJS lautet der vollständige Name von JWT Json Web Token. Dabei handelt es sich um einen offenen Standard, der auf JSON basiert und zum Übertragen von Anweisungen zwischen Netzwerkanwendungsumgebungen implementiert wird. JWT-Ansprüche werden im Allgemeinen verwendet, um authentifizierte Benutzeridentitätsinformationen zwischen Identitätsanbietern und Dienstanbietern weiterzugeben, um Ressourcen von Ressourcenservern zu erhalten.
Die Betriebsumgebung dieses Tutorials: Windows7-System, NodeJS-Version 12.19.0, DELL G3-Computer.
Was ist JWT in nodejs
Json Web Token (JWT) ist ein JSON-basierter offener Standard (RFC 7519), der zur Übertragung von Ansprüchen zwischen Webanwendungsumgebungen implementiert ist. Der Token ist kompakt und sicher und besonders geeignet Für Single-Sign-On-Szenarien (SSO) auf verteilten Standorten werden
JWT-Ansprüche im Allgemeinen verwendet, um authentifizierte Benutzeridentitätsinformationen zwischen Identitätsanbietern und Dienstanbietern weiterzugeben, um den Zugriff auf Ressourcen zu erleichtern Deklarationsinformationen, die für andere Geschäftslogiken erforderlich sind, können auch direkt zur Authentifizierung verwendet oder verschlüsselt werden.
JWT führt die Identitätsauthentifizierung während der HTTP-Kommunikation durch.
Wir wissen, dass die HTTP-Kommunikation nicht zurückgegeben werden kann Der ursprüngliche Client muss daher nach der Verarbeitung durch den Server identifiziert werden. Die übliche Methode besteht darin, den Sitzungsmechanismus zu verwenden: Nachdem sich der Client erfolgreich beim Server angemeldet hat, generiert der Server eine Sitzungs-ID Geben Sie es an den Client zurück. Wenn Sie eine erneute Anfrage stellen, wird die Sitzungs-ID im Cookie an den Server gesendet, und der Server speichert die Sitzung (Sitzung) im Cache Kommt, weiß der Server, welcher Benutzer die Anfrage gestellt hat, und gibt das Verarbeitungsergebnis an den Client zurück. Durch die obige Analyse können wir erkennen, dass die Sitzung die folgenden Probleme aufweist: 1 Wenn die Anzahl der Kundenbesuche zunimmt, muss der Server eine große Anzahl von Sitzungen speichern. 2 Wenn der Server ein Cluster ist, meldet er sich an Der Server speichert die Sitzung im Speicher des Servers, aber wenn der Benutzer auf andere Server zugreift, wird normalerweise die Cache-Konsistenztechnologie verwendet, um sicherzustellen, dass sie gemeinsam genutzt werden kann Wird zum Speichern der Sitzung verwendet, was unpraktisch ist.
1 Der Client meldet sich mit Benutzername und Passwort am Server an 3. Der Server generiert das Token, das an den Client zurückgegeben wird, normalerweise in einem Cookie.
5 Tragen Sie den Token. 6. Der Server muss dann zuerst den Token überprüfen und dann die Daten zurückgeben. Der Server muss den Token nicht speichern, sondern nur die im Token enthaltenen Informationen überprüfen. Egal auf welchen Server der Client im Hintergrund zugreift, solange die Benutzerinformationen übergeben werden können Wie sieht Json Web Token aus? Man erkennt, dass es sich um einen JSON handeltEs besteht aus drei Teilen:
Header, der selten geändert wird:
{ ‘typ’:‘JWT’, ‘alg’:‘HS256’ }
{ ‘iss’:‘签发者’, ‘sub’:‘面向的用户’, ‘aud’:‘接收方’, ‘exp’: 过期时间, ‘iat’: 创建时间, ‘nbf’: 在什么时间之前,该Token不可用, ‘jti’:‘Token唯一标识’ }
(Signatur), nachdem die ersten beiden Teile in Zeichenfolgen konvertiert wurden, verwenden Sie die Base64-Codierung und verschlüsseln Sie dann, um eine Zeichenfolge zu erhalten.
Token = Header (Base64) + Playload (Base64) + Signatur;Implementierungsprozess
–>Das Frontend speichert das Token (speichern Sie es, wo immer Sie möchten)
–> und sendet es an das Frontend,
–>Das Frontend trägt das Token, wenn es eine Datenanforderung initiiert
–> Der Server überprüft, ob das Token legal ist, setzt den Vorgang fort, wenn er legal ist, und beendet den Vorgang, wenn er illegal ist Token-Nutzungsszenarien: zustandslose Anfragen, Beibehaltung des Benutzeranmeldestatus, Anmeldung von Drittanbietern (Token+Auth2.0 )
Unterstützungsalgorithmus
alg参数值 | 数字签名或MAC算法 |
---|---|
HS256 | 使用SHA-256哈希算法的HMAC |
HS384 | 使用SHA-384哈希算法的HMAC |
HS512 | 使用SHA-512哈希算法的HMAC |
RS256 | 使用SHA-256哈希算法的RSASSA-PKCS1-v1_5 |
RS384 | 使用SHA-384哈希算法的RSASSA-PKCS1-v1_5 |
RS512 | 使用SHA-512哈希算法的RSASSA-PKCS1-v1_5 |
PS256 | 使用SHA-256哈希算法的RSASSA-PSS(仅节点^ 6.12.0 OR> = 8.0.0) |
PS384 | 使用SHA-384哈希算法的RSASSA-PSS(仅节点^ 6.12.0 OR> = 8.0.0) |
PS512 | 使用SHA-512哈希算法的RSASSA-PSS(仅节点^ 6.12.0 OR> = 8.0.0) |
ES256 | 使用P-256曲线和SHA-256哈希算法的ECDSA |
ES384 | 使用P-384曲线和SHA-384哈希算法的ECDSA |
ES512 | 使用P-521曲线和SHA-512哈希算法的ECDSA |
没有 | 不包含数字签名或MAC值 |
开发时使用
安装
npm install jsonwebtoken --save
使用
const jwt = require('jsonwebtoken');//加载包 //产生token默认算法hs256 let token=jwt.sign({user:'123'},'123114655sad46aa');//此方法接收两个参数,第一个是要加密保存的数据(一个对象,不要放隐秘性的数据,如密码),第二个是要加密的私钥(一个字符串,越乱越好) console.log(token);//返回一个加密字符串 // 服务器签发的token //eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjoiMTIzIiwiaWF0IjoxNTcwMDc2NjU5fQ.3FT6v8zVptdWGBILD1m1CRY6sCP1I3E947krUh_E3 //客户端请求数据的时候验证token //客户端传递过来的token let tokens=token; jwt.verify(tokens,'123114655sad46aa',function (err,data) { //verify接收两个参数,第一个参数是客户端传递过来的token,第二个参数是加密时的私钥;第三个参数是回调函数 console.log(err);//签名通过返回null,签名不通过返回err(JsonWebTokenError: invalid signature) console.log(data);// 通过返回解密数据,失败返回unfinished });
更多node相关知识,请访问:nodejs 教程!!
Das obige ist der detaillierte Inhalt vonWas ist NodeJS JWT?. 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

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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





Node.js kann als Backend-Framework verwendet werden, da es Funktionen wie hohe Leistung, Skalierbarkeit, plattformübergreifende Unterstützung, ein umfangreiches Ökosystem und einfache Entwicklung bietet.

Um eine Verbindung zu einer MySQL-Datenbank herzustellen, müssen Sie die folgenden Schritte ausführen: Installieren Sie den MySQL2-Treiber. Verwenden Sie mysql2.createConnection(), um ein Verbindungsobjekt zu erstellen, das die Hostadresse, den Port, den Benutzernamen, das Passwort und den Datenbanknamen enthält. Verwenden Sie „connection.query()“, um Abfragen durchzuführen. Verwenden Sie abschließend Connection.end(), um die Verbindung zu beenden.

Die folgenden globalen Variablen sind in Node.js vorhanden: Globales Objekt: global Kernmodul: Prozess, Konsole, erforderlich Laufzeitumgebungsvariablen: __dirname, __filename, __line, __column Konstanten: undefiniert, null, NaN, Infinity, -Infinity

Es gibt zwei npm-bezogene Dateien im Node.js-Installationsverzeichnis: npm und npm.cmd. Die Unterschiede sind wie folgt: unterschiedliche Erweiterungen: npm ist eine ausführbare Datei und npm.cmd ist eine Befehlsfensterverknüpfung. Windows-Benutzer: npm.cmd kann über die Eingabeaufforderung verwendet werden, npm kann nur über die Befehlszeile ausgeführt werden. Kompatibilität: npm.cmd ist spezifisch für Windows-Systeme, npm ist plattformübergreifend verfügbar. Nutzungsempfehlungen: Windows-Benutzer verwenden npm.cmd, andere Betriebssysteme verwenden npm.

Die Hauptunterschiede zwischen Node.js und Java sind Design und Funktionen: Ereignisgesteuert vs. Thread-gesteuert: Node.js ist ereignisgesteuert und Java ist Thread-gesteuert. Single-Threaded vs. Multi-Threaded: Node.js verwendet eine Single-Threaded-Ereignisschleife und Java verwendet eine Multithread-Architektur. Laufzeitumgebung: Node.js läuft auf der V8-JavaScript-Engine, während Java auf der JVM läuft. Syntax: Node.js verwendet JavaScript-Syntax, während Java Java-Syntax verwendet. Zweck: Node.js eignet sich für I/O-intensive Aufgaben, während Java für große Unternehmensanwendungen geeignet ist.

Ja, Node.js ist eine Backend-Entwicklungssprache. Es wird für die Back-End-Entwicklung verwendet, einschließlich der Handhabung serverseitiger Geschäftslogik, der Verwaltung von Datenbankverbindungen und der Bereitstellung von APIs.

Serverbereitstellungsschritte für ein Node.js-Projekt: Bereiten Sie die Bereitstellungsumgebung vor: Erhalten Sie Serverzugriff, installieren Sie Node.js, richten Sie ein Git-Repository ein. Erstellen Sie die Anwendung: Verwenden Sie npm run build, um bereitstellbaren Code und Abhängigkeiten zu generieren. Code auf den Server hochladen: über Git oder File Transfer Protocol. Abhängigkeiten installieren: Stellen Sie eine SSH-Verbindung zum Server her und installieren Sie Anwendungsabhängigkeiten mit npm install. Starten Sie die Anwendung: Verwenden Sie einen Befehl wie node index.js, um die Anwendung zu starten, oder verwenden Sie einen Prozessmanager wie pm2. Konfigurieren Sie einen Reverse-Proxy (optional): Verwenden Sie einen Reverse-Proxy wie Nginx oder Apache, um den Datenverkehr an Ihre Anwendung weiterzuleiten

Node.js und Java haben jeweils ihre Vor- und Nachteile in der Webentwicklung, und die Wahl hängt von den Projektanforderungen ab. Node.js zeichnet sich durch Echtzeitanwendungen, schnelle Entwicklung und Microservices-Architektur aus, während Java sich durch Support, Leistung und Sicherheit auf Unternehmensniveau auszeichnet.
