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
ANFRAGE- Als sich der Benutzer bei der Anwendung anmeldete, stellte der Browser eine Anfrage mit Benutzeranmeldeinformationen an den Server.
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.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.
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!

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

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.

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

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.

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 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.

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

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.


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

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
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

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
