Implementierung der Authentifizierung mit JWT in einer Node.js -App
Aug 01, 2025 am 05:59 AMJWT ist ein sicheres Token -Format für die Authentifizierung, das aus Header, Nutzlast und Signatur besteht. 2. Setzen Sie Node.js mit Express, JsonWebtoken, Bcryptjs, Body-Parser und Dotenv; 3. Erstellen Sie einen Server mit Benutzerregistrierung, Kennworthashing und Melden Sie sich an, um JWT zu generieren. V. 5. Geheimnisse in Umgebungsvariablen speichern und HTTPS in der Produktion verwenden; 6. Testregistrierung, Anmeldung und Zugriff auf geschützte Routen mithilfe von Tools wie Locken oder Postboten; 7. Implementieren Sie optional Aktualisierungstoken für eine verbesserte Sicherheit und Benutzererfahrung. Das System behandelt die Authentifizierung mit JWT in Node.js mit Express sicher und ist in Kombination mit einer realen Datenbank und geeigneten Sicherheitspraktiken bereit für die Produktion.
Das Hinzufügen einer Authentifizierung zu einer Node.js -App mit JSON Web Tokens (JWT) ist eine h?ufige und effektive M?glichkeit, Ihre APIs zu sichern. Hier ist ein praktischer Leitfaden zur Implementierung der JWT-basierten Authentifizierung in einer Node.js-Anwendung mit Express.

1. Was ist JWT?
JWT (JSON Web Token) ist ein kompaktes URL-Safe-Token-Format, mit dem Informationen zwischen Parteien als JSON-Objekt sicher übertragen werden. Es wird h?ufig zur Authentifizierung und Autorisierung verwendet. Ein JWT besteht normalerweise aus drei Teilen: Header , Nutzlast und Signatur , getrennt durch Punkte (z. B. xxx.yyy.zzz
).
Sobald sich ein Benutzer anmeldet, generiert der Server einen JWT und sendet ihn an den Client. Der Client schlie?t dann dieses Token in nachfolgenden Anfragen (normalerweise im Authorization
) auf, und der Server überprüft ihn, bevor er Zugriff gew?hrt.

2. Setup und Abh?ngigkeiten
Beginnen Sie zun?chst initialisieren Sie Ihr Node.js -Projekt und installieren Sie die erforderlichen Pakete:
npm init -y NPM Installieren NPM Install-Save-dev Nodemon
-
express
: Web Framework -
jsonwebtoken
: JWTS generieren und überprüfen -
bcryptjs
: zu Hash -Passw?rtern -
body-parser
: Anfragen von Anforderungsk?rpern analysieren -
dotenv
: Umgebungsvariablen verwalten
Fügen Sie ein Skript zu package.json
für die Entwicklung hinzu:

"Skripte": {{ "Start": "node server.js", "Dev": "nodemon server.js" }
A. Basic Server Setup
Erstellen Sie eine server.js
-Datei:
const express = forderung ('express'); const bodyparser = fordern ('Body-Parser'); const dotenv = erfordern ('dotenv'); const jwt = fordert ('JsonWebtoken'); const bcrypt = require ('bcryptjs'); dotenv.config (); const App = express (); app.use (bodyparser.json ()); // Simulierte Benutzerdatenbank (Verwenden Sie eine echte dB wie MongoDB oder PostgreSQL in der Produktion) const user = []; const secry_key = process.env.secret_key || "Ihr super-sekret-jwt-key"; // Dienstprogramm: JWT generieren const Generatetoken = (Benutzer) => { return jwt.sign ({id: user.id, userername: user.username}, secry_key, { abl?uft: '1h', }); }; // Middleware: Authentifizierter Token const authenticatEToken = (req, res, next) => { const authHeader = req.Headers ['Autorisierung']; const token = authheader && authheader.split ('') [1]; // Bearer Token if (! token) { return res.status (401) .json ({Nachricht: 'Zugriff verweigert. Nein Token bereitgestellt.'}); } jwt.verify (token, secry_key, (err, user) => { if (err) { return res.status (403) .json ({message: 'ungültiges oder abgelaufenes Token.'}); } Req.User = Benutzer; n?chste(); }); };
4. Benutzerregistrierung
app.post ('/register', async (req, res) => { const {Benutzername, Passwort} = req.body; if (! Benutzername ||! Passwort) { return res.status (400) .json ({message: 'Benutzername und Passwort sind erforderlich.'}); } // überprüfen Sie, ob der Benutzer bereits existiert const existierer = user.find (u => u.username === userername); if (existierteruser) { return res.status (400) .json ({message: 'userername bereits existiert'}); } // Hash Passwort const hashedPassword = warte bcrypt.hash (Passwort, 10); const user = {id: user.Length 1, Benutzername, Passwort: HashedPassword}; Benutzer.push (Benutzer); Res.Status (201) .json ({message: 'Benutzer erfolgreich registriert.'}); });
5. Benutzeranmeldung und Token -Generation
app.post ('/login', async (req, res) => { const {Benutzername, Passwort} = req.body; const user = user.find (u => u.username === Benutzername); if (! Benutzer) { return res.status (400) .json ({message: 'ungültige Anmeldeinformationen.'}); } const isPasswordValid = warte bcrypt.comPare (Passwort, user.Password); if (! ispasswordvalid) { return res.status (400) .json ({message: 'ungültige Anmeldeinformationen.'}); } const token = GeneratEToken (Benutzer); res.json ({{ Nachricht: 'erfolgreich anmelden.',, Token, }); });
6. Beispiel für geschützte Route
app.get ('/profil', authenticateToken, (req, res) => { res.json ({message: `willkommen $ {req.user.username}`, userId: req.user.id}); });
7. Umgebungsvariablen
Erstellen Sie eine .env
-Datei:
Secry_key = wechseln-zu-a-a-sehr-longiger Random-String-in-Production
Dies h?lt Ihren geheimen Schlüssel sicher und au?erhalb Ihrer Codebasis.
8. Testen der API
Sie k?nnen mit Locken oder Tools wie Postman testen:
Registrieren:
curl -x post http: // localhost: 3000/register \ -H "Inhaltstyp: application/json" \ -D '{"Benutzername": "Alice", "Passwort": "Secret123"}'
Login:
curl -x post http: // localhost: 3000/login \ -H "Inhaltstyp: application/json" \ -D '{"Benutzername": "Alice", "Passwort": "Secret123"}'
Zugang zu geschützten Route:
curl -x erhalten Sie http: // localhost: 3000/profil \ -H "Autorisierung: Tr?ger <Your-Jwt-token>"
Wichtige Sicherheitsnotizen
- ? Verwenden Sie immer HTTPS in der Produktion.
- ? Speichern Sie das JWT -Geheimnis in Umgebungsvariablen - Hardcode es nie.
- ? Stellen Sie einen angemessenen Token -Ablauf fest (z. B. 15–60 Minuten). Verwenden Sie Refresh-Token für langlebige Sitzungen.
- ? Validieren und desinfizieren Sie alle Inputs, um Injektionsangriffe zu verhindern.
- In der Produktion verwenden Sie eine echte Datenbank mit ordnungsgem??er Indexierung und Sicherheit.
Optional: Token aktualisieren
Implementieren Sie für eine bessere UX Aktualisierungstoken, um Zugangsantr?ge zu erneuern, ohne erneut zu login zu werden. Dies fügt Komplexit?t hinzu, verbessert jedoch die Sicherheit und Benutzerfreundlichkeit.
Das war's! Sie haben jetzt ein funktionierendes JWT -Authentifizierungssystem in node.js. Es ist minimal, deckt jedoch die Wesentlichen ab: Registrierung, Anmeldung, Token -Generierung, überprüfung und geschützte Routen.
Kleben Sie die Teile im Grunde nur sicher zusammen - und überspringen Sie niemals Hashing -Passw?rter.
Das obige ist der detaillierte Inhalt vonImplementierung der Authentifizierung mit JWT in einer Node.js -App. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

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

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

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





Analyse der sicheren JWT-Token-Generierungs- und Verifizierungstechnologie in PHP Mit der Entwicklung von Netzwerkanwendungen werden Benutzerauthentifizierung und -autorisierung immer wichtiger. JsonWebToken (JWT) ist ein offener Standard (RFC7519) zur sicheren übertragung von Informationen in Webanwendungen. In der PHP-Entwicklung ist es g?ngige Praxis, JWT-Tokens zur Benutzerauthentifizierung und -autorisierung zu verwenden. In diesem Artikel wird die sichere JWT-Token-Generierungs- und Verifizierungstechnologie in PHP vorgestellt. 1. Grundkenntnisse von JWT im Verst?ndnis der Generierung von und

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

OAuth in PHP: Erstellen eines JWT-Autorisierungsservers Mit dem Aufkommen mobiler Anwendungen und dem Trend zur Trennung von Front-End und Back-End ist OAuth zu einem unverzichtbaren Bestandteil moderner Webanwendungen geworden. OAuth ist ein Autorisierungsprotokoll, das die Ressourcen der Benutzer vor unbefugtem Zugriff schützt, indem es standardisierte Prozesse und Mechanismen bereitstellt. In diesem Artikel erfahren Sie, wie Sie mit PHP einen auf JWT (JSONWebTokens) basierenden OAuth-Autorisierungsserver erstellen. JWT ist eine Art von

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

Vue.js ist ein beliebtes JavaScript-Framework zum Erstellen dynamischer Webanwendungen. Die Implementierung der Benutzeranmeldeauthentifizierung ist einer der notwendigen Bestandteile bei der Entwicklung von Webanwendungen. In diesem Artikel wird eine vollst?ndige Anleitung zur Implementierung der Anmeldeüberprüfung mit Vue.js, API, JWT und Axios vorgestellt. Erstellen einer Vue.js-Anwendung Zuerst müssen wir eine neue Vue.js-Anwendung erstellen. Wir k?nnen eine Vue.js-Anwendung mit VueCLI oder manuell erstellen. Axiosax installieren

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren übertragung von Informationen zwischen Parteien verwendet wird, haupts?chlich für die Identit?tsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enth?lt drei Schritte: Generierung von JWT, überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer k?nnen in die erweiterte Verwendung aufgenommen werden. 4. H?ufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergro?e Nutzlast. Zu Debugging -F?higkeiten geh?rt die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Mit der rasanten Entwicklung des Internets und des mobilen Internets erfordern immer mehr Anwendungen eine Authentifizierung und Berechtigungskontrolle, und JWT (JSON Web Token) wird als einfacher Authentifizierungs- und Autorisierungsmechanismus h?ufig in WEB-Anwendungen verwendet. Beego ist ein MVC-Framework, das auf der Go-Sprache basiert und die Vorteile von Effizienz, Einfachheit und Skalierbarkeit bietet. In diesem Artikel wird die Verwendung von JWT zur Implementierung der Authentifizierung in Beego vorgestellt. 1. Einführung in JWT JSONWebToken (JWT) ist ein

Zuerst müssen wir das verwendete JWT-Paket importieren: io.jsonwebtokenjjwt0.8.0com.auth0java-jwt3.2.0 1. Bereiten Sie LoginUser (Anmeldeinformationen speichern) und JwtUserLoginUser.javapublicclassLoginUser{privateIntegeruserId;privateStringusername;privateStringpassword;privateStringrole;generate getter und setter vor. ..}JwtUser.javaimp
