Heim  >  Artikel  >  Web-Frontend  >  Einfache Verwendung von Sitzungen in Nodejs und Authentifizierungsmethoden über session_node.js

Einfache Verwendung von Sitzungen in Nodejs und Authentifizierungsmethoden über session_node.js

WBOY
WBOYOriginal
2016-05-16 15:16:151438Durchsuche

Sitzung bedarf keiner Einführung, sodass ein http einem Endbenutzer entsprechen kann.

Das Wesentliche der Sitzung wird mithilfe von Cookies implementiert.

Das Prinzip ist wahrscheinlich: HTTP bringt den Server dazu, Cookies im Voraus zu setzen, der Server erhält das Cookie, das die Identität des Benutzers angibt, und geht dann zu einem festen Ort (Datenbank, Datei), um die entsprechende Benutzeridentität abzurufen. Weisen Sie der Anfrage dieser Anfrage die Identität zu, und die Identität des Benutzers wird während der Programmverarbeitung bekannt sein. (Es wird automatisch für Sie in PHP, ASP oder anderen serverseitigen Sprachen implementiert)

Cookies implementieren

Für jeden Benutzer muss ein Cookie gesetzt werden, das den Benutzer identifiziert. Sie können die folgenden Regeln verwenden

MD5-Wert der registrierten E-Mail-Adresse, MD5-Wert des Passworts und MD5-Wert des Zufallscodes. (Nur ein Beispiel, dies ist möglicherweise keine gute Lösung)

Server-Code-Snippet:

res.setHeader("Set-Cookie", ["sid="+newUser.toCookie()+";path=/;domain="+config.domain+";expires="+new Date("2030") ]); 

Cookie

sid=275fccab7935736ff68c95c3ddbfaaee|275fccab7935736ff68c95c3ddbfaaee|275fccab7935736ff68c95c3ddbfaaee 

Verwenden Sie Cookies, um eine Benutzeridentität zu erhalten und eine Sitzung einzurichten

Leiten Sie alle nicht statischen Ressourcenanfragen zur Verarbeitung hierher. Holen Sie sich das Cookie, teilen Sie das Cookie und finden Sie qualifizierte Benutzer in der Datenbank. Verwenden Sie schließlich „next“, um zur nächsten Anforderungslogik zu springen.

Die nächste Anforderungslogik besteht darin, req.session.user direkt zu verwenden, um das Benutzerobjekt abzurufen.

session:function(req, res, next){
req.session = {};
if( req.cookies && req.cookies.sid ){
var a = req.cookies.sid.split("|");
var hexMail = a[0];
var hexPwd = a[1];
var hexRandom = a[2];
UserModel.hexFind(hexMail, hexPwd, hexRandom, function( status ){
//console.log("hexFind", status );
if(status.code == "0"){
//req.cookiesSelecter = cookiesSelecter;
req.session.user = status.result;
}
next();
});
}else{
next();
} 
}

Lassen Sie mich darüber sprechen, wie NodeJS die Identitätsauthentifizierung durch Sitzung implementiert

nodejs Express-Sitzungsauthentifizierung

1) Modul importieren

var session = require('express-session');
var cookieParser = require('cookie-parser');

2) Cookie und Sitzung anwenden

app.use(cookieParser());
app.use(session({
resave: true, // don't save session if unmodified
saveUninitialized: false, // don't create session until something stored
secret: 'love'
}));

3) Wenden Sie bei der Anfrage eine Authentifizierung an

app.use(function(req,res,next){
if (!req.session.user) {
if(req.url=="/login"){
next();//如果请求的地址是登录则通过,进行下一个请求
}
else
{
res.redirect('/login');
}
} else if (req.session.user) {
next();
}
});

4) Login-Design

app.get('/login',function(req,res){
res.render("login");
});
app.post('/login',function(req,res){
if(req.body.username=="love" && req.body.password=="love"){
var user = {'username':'love'};
req.session.user = user;
res.redirect('/admin/app/list');
}
else
{
res.redirect('/login');
}
});
app.get('/logout',function(req,res){
req.session.user = null;
res.redirect('/login');
});
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