suchen
HeimWeb-Frontendjs-TutorialAuthentifizierungssystem mit NodeJS

Authentication System Using NodeJS

Einführung

Authentifizierung ist ein Prozess, um die Identität des Benutzers zu identifizieren und ihm Zugriff auf die von der Anwendung bereitgestellten Ressourcen zu gewähren. In der Backend-Entwicklung,
Authentifizierung spielt eine wichtige Rolle, um Benutzern den Zugriff auf bestimmte Ressourcen zu gewähren oder einzuschränken.

Die Authentifizierung kann auf zwei Arten erfolgen: -

  • Tokenbasierte Authentifizierung.

  • Sitzungsbasierte Authentifizierung.

Hier sprechen wir über tokenbasierte Authentifizierung.

Tokenbasierte Authentifizierung

Tokenbasierte Authentifizierung ist ein weit verbreiteter Sicherheitsmechanismus, um Benutzern ein robustes Erlebnis zu bieten, ohne Kompromisse bei der Sicherheit einzugehen.

Bei der tokenbasierten Authentifizierung generiert der Server beim Anmelden eines Benutzers ein eindeutiges Token für Benutzer. Nachdem der Server das Token generiert hat, wird es an den Client gesendet und lokal auf dem System des Clients gespeichert. Immer wenn der Client eine Anfrage stellt, wird dieser Token jeder Anfrage beigefügt, um die Identität des Benutzers zu überprüfen.

Authentifizierungsprozess

  1. ANFRAGE- Als sich der Benutzer bei der Anwendung anmeldete, stellte der Browser eine Anfrage mit Benutzeranmeldeinformationen an den Server.

  2. VERIFIZIERUNG – Wenn eine Anfrage beim Server eingeht, validiert dieser den Benutzer, generiert einen geheimen Schlüssel, der als Token bekannt ist, und sendet ihn über HTTP an den Benutzer.
    Im Allgemeinen wird das Token in einem offenen JWT-Standard [jsonWebTokens] gesendet, der aus einem Header, einer Nutzlast und einer Signatur besteht.

  3. TOKEN VALIDIEREN – Wenn der Benutzer den Token-Geheimcode erhält, wird dieser im Browser des Kunden gespeichert, da er dabei hilft, die Identität zu überprüfen, wann immer der Benutzer eine Anfrage stellt. Dieser Token ist kurzlebig, hat eine Lebensdauer von 15–60 Minuten und wird auch als Zugriffstokencode bezeichnet. Wenn der Benutzer den Zugriffstokencode nicht verwenden kann, wird er nach einem Aktualisierungstokencode gefragt, der 3–4 Tage im System verbleibt.

  4. ANTWORT – Wenn die Validierung abgeschlossen ist, wird dem Benutzer ein Token gewährt oder der Zugriff auf bestimmte Inhalte eingeschränkt.

Beispiel
Nehmen wir ein Beispiel: Wir implementieren die tokenbasierte Authentifizierung mithilfe der Registrierungs- und Anmeldemethode.

Zuerst erstellen wir die Funktionalität für das Registrierungsmodul für einen Benutzer:-

SCHRITT 1: - Benutzer registrieren
Bei der Registrierung werden Daten vom Benutzer erfasst, um ein Konto zu erstellen

// FIRSTLY, WE'LL SELECT THE REGISTER FORM
const form = document.querySelector(".register");

// ADDING EVENT LISTENER TO FORM TO COLLECT THE VALUES FROM USER
form.addEventListener("submit", (e) => {

  e.preventDefault();
  const username = e.target.username.value;
  const email = e.target.email.value;
  const password = e.target.password.value;

});

SCHRITT2: - Passwort verschlüsseln

Bevor wir Benutzerdaten in der Datenbank speichern, müssen wir aus Sicherheitsgründen zunächst das Passwort verschlüsseln und es dann in der Datenbank speichern.

Zur Verschlüsselung des Passworts verwenden wir npm package bcrypt.

Zuerst müssen wir das Paket installieren, indem wir im Terminal schreiben: -
npm install bcrypt

Jetzt hashen wir das Passwort wie folgt

// FIRSTLY, WE'LL SELECT THE REGISTER FORM
const form = document.querySelector(".register");

// ADDING EVENT LISTENER TO FORM TO COLLECT THE VALUES FROM USER
form.addEventListener("submit", (e) => {

  e.preventDefault();
  const username = e.target.username.value;
  const email = e.target.email.value;
  const password = e.target.password.value;

});

bcrypt.hash ist eine Funktion, die das Passwort mit Salt-Runden hasht. Es generiert jedes Mal einen anderen Hash-Schlüssel, wenn einer von zwei Benutzern dasselbe Passwort hat.

Anmeldefunktion

Wenn ein Benutzer versucht, sich anzumelden, ruft er das gehashte Passwort aus der Datenbank ab und vergleicht es mit dem Passwort, das der Benutzer bei der Anmeldung angegeben hat

//  IMPORTING BCRYPT MODULE
const bcrypt=require('bcrypt');


// ASSIGNING USERS PASSWORD 
const plainPassword=userPassword

// ENCRYPTING PASSWORD
// BASIC SYNTAX
// bcrypt.hash(plainTextPassword,salt_rounds)

const hashedPassword=bcrypt.hash(plainPassword,10);

if(!hashedPassword){
    throw new Error('Enable to generate password')
}

// NOW WE WILL SAVE USER DETAILS AND PASSWORD TO DATABASE
console.log('Hashed Password is : ',hashedPassword)

Das obige ist der detaillierte Inhalt vonAuthentifizierungssystem mit NodeJS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Java gegen JavaScript: Ein detaillierter Vergleich für EntwicklerJava gegen JavaScript: Ein detaillierter Vergleich für EntwicklerMay 16, 2025 am 12:01 AM

JavaandjavaScriptaredistinctuGuages: JavaisusedForenterPrisandMobileApps, während JavaScriptisforinteractivewebpages.1) Javaiscompiled, statusweit, Andrunsonjvm.2) JavaScriptisinterpretierte, dynamisch und Runsinbrowserde

JavaScript -Datentypen: Gibt es einen Unterschied zwischen Browser und NodeJs?JavaScript -Datentypen: Gibt es einen Unterschied zwischen Browser und NodeJs?May 14, 2025 am 12:15 AM

JavaScript -Kerndatentypen sind in Browsern und Knoten.js konsistent, werden jedoch unterschiedlich als die zusätzlichen Typen behandelt. 1) Das globale Objekt ist ein Fenster im Browser und global in node.js. 2) Node.js 'eindeutiges Pufferobjekt, das zur Verarbeitung von Binärdaten verwendet wird. 3) Es gibt auch Unterschiede in der Leistung und Zeitverarbeitung, und der Code muss entsprechend der Umgebung angepasst werden.

JavaScript -Kommentare: Eine Anleitung zur Verwendung // und / * * /JavaScript -Kommentare: Eine Anleitung zur Verwendung // und / * * /May 13, 2025 pm 03:49 PM

JavaScriptUSESTWOTYPESOFCOMMENMENTEN: Einzelzeilen (//) und Multi-Linie (//). 1) Verwendung // Forquicknotesorsingle-Linexplanationen.2 Verwendung // ForlongerExPlanationsCompomentingingoutblocks-

Python gegen JavaScript: Eine vergleichende Analyse für EntwicklerPython gegen JavaScript: Eine vergleichende Analyse für EntwicklerMay 09, 2025 am 12:22 AM

Der Hauptunterschied zwischen Python und JavaScript sind die Typ -System- und Anwendungsszenarien. 1. Python verwendet dynamische Typen, die für wissenschaftliche Computer- und Datenanalysen geeignet sind. 2. JavaScript nimmt schwache Typen an und wird in Front-End- und Full-Stack-Entwicklung weit verbreitet. Die beiden haben ihre eigenen Vorteile bei der asynchronen Programmierung und Leistungsoptimierung und sollten bei der Auswahl gemäß den Projektanforderungen entschieden werden.

Python vs. JavaScript: Auswählen des richtigen Tools für den JobPython vs. JavaScript: Auswählen des richtigen Tools für den JobMay 08, 2025 am 12:10 AM

Ob die Auswahl von Python oder JavaScript vom Projekttyp abhängt: 1) Wählen Sie Python für Datenwissenschafts- und Automatisierungsaufgaben aus; 2) Wählen Sie JavaScript für die Entwicklung von Front-End- und Full-Stack-Entwicklung. Python ist für seine leistungsstarke Bibliothek in der Datenverarbeitung und -automatisierung bevorzugt, während JavaScript für seine Vorteile in Bezug auf Webinteraktion und Full-Stack-Entwicklung unverzichtbar ist.

Python und JavaScript: Verständnis der Stärken der einzelnenPython und JavaScript: Verständnis der Stärken der einzelnenMay 06, 2025 am 12:15 AM

Python und JavaScript haben jeweils ihre eigenen Vorteile, und die Wahl hängt von den Projektbedürfnissen und persönlichen Vorlieben ab. 1. Python ist leicht zu erlernen, mit prägnanter Syntax, die für Datenwissenschaft und Back-End-Entwicklung geeignet ist, aber eine langsame Ausführungsgeschwindigkeit hat. 2. JavaScript ist überall in der Front-End-Entwicklung und verfügt über starke asynchrone Programmierfunktionen. Node.js macht es für die Entwicklung der Vollstapel geeignet, die Syntax kann jedoch komplex und fehleranfällig sein.

JavaScripts Kern: Ist es auf C oder C aufgebaut?JavaScripts Kern: Ist es auf C oder C aufgebaut?May 05, 2025 am 12:07 AM

JavaScriptisnotbuiltoncorc; Es ist angehört, dass sich JavaScriptWasdedeSthatrunsonGineoFtencninc.

JavaScript-Anwendungen: Von Front-End bis Back-EndJavaScript-Anwendungen: Von Front-End bis Back-EndMay 04, 2025 am 12:12 AM

JavaScript kann für die Entwicklung von Front-End- und Back-End-Entwicklung verwendet werden. Das Front-End verbessert die Benutzererfahrung durch DOM-Operationen, und die Back-End-Serveraufgaben über node.js. 1. Beispiel für Front-End: Ändern Sie den Inhalt des Webseitentextes. 2. Backend Beispiel: Erstellen Sie einen Node.js -Server.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

Heißer Artikel

Nordhold: Fusionssystem, erklärt
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software