So melden Sie sich mit nodejs am Backend an
Als Entwicklungstool zur Implementierung einer serverseitigen JavaScript-Laufzeitumgebung wurde Node.js nach und nach weit verbreitet. Node.js bietet eine Möglichkeit, Netzwerkanwendungen ereignisgesteuert zu schreiben, sodass Entwickler problemlos Server einrichten und webbasierte Anwendungen erstellen können.
In vielen Webanwendungen ist die Benutzeranmeldung ein sehr wichtiger Bestandteil. Administratoren müssen sich beim Backend-Verwaltungssystem anmelden, um Daten und Geschäfte zu verwalten. Daher ist es in Node.js erforderlich, eine grundlegende Anmeldeauthentifizierung zu implementieren. Dieser Prozess erfordert eine Reihe von Vorgängen wie die Authentifizierung der Benutzeridentität und die Rückrufverwaltung.
In diesem Artikel werden einige gängige Anmeldeauthentifizierungsmethoden in Node.js vorgestellt, darunter die Verwendung von Middleware, die Verwendung der Sitzungsverwaltung und die Verwendung von JSON Web Token (JWT) zur Implementierung der Tokenauthentifizierung.
Middleware verwenden
In Node.js ist Middleware ein wichtiges Konzept, das HTTP-Anfragen verarbeitet und die Änderung der Antwort sowie die Entscheidung, die Anfrage an die nächste Middleware weiterzuleiten, ermöglicht. Daher kann die Implementierung der Anmeldefunktion auch über Middleware erfolgen.
Der größte Vorteil der Verwendung von Middleware besteht darin, dass sie die Lesbarkeit und Wartbarkeit des Codes verbessern kann. Gleichzeitig können wiederholte Codemodule reduziert werden.
Codebeispiel:
const express = require('express'); const app = express(); const port = 3000; //中间件 app.use(express.urlencoded({extended: false})); app.use(express.json()); //登录页面 app.get('/login', function(req, res) { res.sendFile(__dirname + '/login.html'); }); //登录验证 app.post('/login', function(req, res){ const username = req.body.username; const password = req.body.password; if(username === 'admin' && password === '123456'){ // 验证成功,则可以将用户信息存储到session中 req.session.userinfo = req.body; res.send('登录成功'); }else{ res.send('用户名或密码错误!'); } }); app.listen(port, function(){ console.log(`Server is running on port ${port}`); });
Im obigen Code verwenden wir die express
-Middleware zur Verarbeitung von HTTP-Anfragen und -Antworten und die express-session
-Middleware für die Sitzungsverwaltung des Benutzers . express
中间件来处理HTTP请求和响应,并使用express-session
中间件对用户会话进行管理。
使用session会话管理
在Web开发实践中,session是指在服务器端存储信息的一种机制。它以key-value的形式存储,key是sessionID,而value是一个JSON格式的对象,可以存储用户的身份信息、权限信息等。
Node.js中实现基本的会话管理需要使用express-session
中间件。在使用express-session
中间件时,需要设置一个参数secret
用于签名,这样可以保证session的安全性。同时,需要设置resave
参数和saveUnitialized
参数为false
,这可以避免session的重写和保存未初始化的session。
代码示例:
const express = require('express'); const app = express(); const session = require('express-session'); const port = 3000; //使用express-session中间件 app.use(session({ secret: 'sessiontest', resave: false, saveUnitialized: false, cookie: { maxAge: 1000 * 60 * 30 } })); // 登录页面 app.get('/login', function(req, res) { res.sendFile(__dirname + '/login.html'); }); //登录验证 app.post('/login', function(req, res){ const username = req.body.username; const password = req.body.password; if(username === 'admin' && password === '123456'){ // 验证成功,则可以将用户信息存储到session中 req.session.userinfo = req.body; res.send('登录成功'); }else{ res.send('用户名或密码错误!'); } }); //后台页面 app.get('/admin', function(req, res){ // 验证session中是否存储了用户信息 const userinfo = req.session.userinfo; if(userinfo && userinfo.username){ res.sendFile(__dirname + '/admin.html'); }else{ //如果未存储,则重定向到登录页面 res.redirect('/login'); } }); app.listen(port, function(){ console.log(`Server is running on port ${port}`); });
使用JSON Web Token(JWT)实现token认证
除了使用session来管理用户登录状态之外,还可以使用JSON Web Token(JWT)实现token认证。JWT是一种轻量、安全、灵活的身份验证协议。在该协议中,服务器生成一个包含用户信息的token,然后将该token返回给客户端。后续的请求都需要在HTTP头中携带该token。
使用JWT的好处在于它不需要在服务器上存储用户信息,而是将用户信息编码到token中,这样就减轻了服务器的存储压力。同时,由于token包含了用户信息,因此可以在客户端和服务器端之间轻易地传递用户身份信息。
要使用JWT,需要使用jsonwebtoken
库来实现查询操作,该库可以在node.js中工作和浏览器中工作。在使用jsonwebtoken
express-session
verwenden. Wenn Sie die Middleware express-session
verwenden, müssen Sie einen Parameter secret
für die Signatur festlegen, der die Sicherheit der Sitzung gewährleisten kann. Gleichzeitig müssen Sie die Parameter resave
und saveUnitialized
auf false
setzen, um das Umschreiben von Sitzungen und das Speichern nicht initialisierter Sitzungen zu vermeiden. 🎜🎜Codebeispiel: 🎜const express = require('express'); const jwt = require('jsonwebtoken'); const app = express(); const port = 3000; //生成Token app.post('/login', function(req, res){ const username = req.body.username; const password = req.body.password; if(username === 'admin' && password === '123456'){ const userinfo = { name: username } //在jsonwebtoken中生成Token jwt.sign(userinfo, 'secretkey', {expiresIn: '10min'}, function(err, token){ if(err) throw err; res.json({ token: token }); }) }else{ res.send('用户名或密码错误!'); } }); // 验证Token app.get('/admin', verifyToken, function(req, res){ res.sendFile(__dirname + '/admin.html'); }); //中间件,用于验证Token function verifyToken(req, res, next){ //从请求头中获取Token const bearerHeader = req.hearders['authorization']; if(typeof bearerHeader !== 'undefined'){ const bearerToken = bearerHeader.split(' ')[1]; // 在jsonwebtoken中验证Token jwt.verify(bearerToken, 'secretkey', function(err, data){ if(err) res.sendStatus(403); req.userinfo = data; next(); }); }else{ res.sendStatus(403); } }; app.listen(port, function(){ console.log(`Server is running on port ${port}`); });
jsonwebtoken
verwenden, um Abfragevorgänge zu implementieren. Diese Bibliothek kann in node.js und im Browser funktionieren. Wenn Sie jsonwebtoken
verwenden, müssen Sie einen Schlüssel und einen Gültigkeitszeitraum festlegen, um sicherzustellen, dass das generierte Token authentifiziert und akzeptiert werden kann. 🎜🎜Codebeispiel: 🎜rrreee🎜Mit der oben genannten Methode können wir eine grundlegende Anmeldeauthentifizierungsfunktion in Node.js implementieren. Basierend auf spezifischen Geschäftsanforderungen können verschiedene Lösungen ausgewählt werden. Gleichzeitig müssen Sie auch auf die Sicherheit und Stabilität der Anmeldung achten, um sicherzustellen, dass keine Lücken entstehen und Benutzerdaten beschädigt werden. 🎜Das obige ist der detaillierte Inhalt vonSo melden Sie sich mit nodejs am Backend an. 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

In dem Artikel wird die Verwendung von UseEffect in React, einen Haken für die Verwaltung von Nebenwirkungen wie Datenabrufen und DOM -Manipulation in funktionellen Komponenten erläutert. Es erklärt die Verwendung, gemeinsame Nebenwirkungen und Reinigung, um Probleme wie Speicherlecks zu verhindern.

Lazy Ladeverzögerung des Ladens von Inhalten bis zur Bedarf, Verbesserung der Webleistung und Benutzererfahrung durch Reduzierung der anfänglichen Ladezeiten und des Serverlasts.

Funktionen höherer Ordnung in JavaScript verbessern die Übersichtlichkeit, Wiederverwendbarkeit, Modularität und Leistung von Code durch Abstraktion, gemeinsame Muster und Optimierungstechniken.

In dem Artikel wird das Currying in JavaScript, einer Technik, die Multi-Argument-Funktionen in Einzelargument-Funktionssequenzen verwandelt. Es untersucht die Implementierung von Currying, Vorteile wie teilweise Anwendungen und praktische Verwendungen, Verbesserung des Code -Lesens

Der Artikel erläutert den Versöhnungsalgorithmus von React, der das DOM effizient aktualisiert, indem virtuelle DOM -Bäume verglichen werden. Es werden Leistungsvorteile, Optimierungstechniken und Auswirkungen auf die Benutzererfahrung erörtert.

Der Artikel erläutert den Usecontext in React, was das staatliche Management durch Vermeidung von Prop -Bohrungen vereinfacht. Es wird von Vorteilen wie zentraler Staat und Leistungsverbesserungen durch reduzierte Neulehre erörtert.

In Artikeln werden das Standardverhalten bei Ereignishandlern mithilfe von PURDDEFAULT () -Methoden, seinen Vorteilen wie verbesserten Benutzererfahrungen und potenziellen Problemen wie Barrierefreiheitsproblemen verhindern.

Der Artikel erörtert die Vor- und Nachteile kontrollierter und unkontrollierter Komponenten bei React, wobei sich auf Aspekte wie Vorhersehbarkeit, Leistung und Anwendungsfälle konzentriert. Es rät zu Faktoren, die bei der Auswahl zwischen ihnen berücksichtigt werden müssen.
