Heim > Web-Frontend > js-Tutorial > Hauptteil

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

WBOY
Freigeben: 2016-05-16 15:16:15
Original
1429 Leute haben es durchsucht

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") ]); 
Nach dem Login kopieren

Cookie

sid=275fccab7935736ff68c95c3ddbfaaee|275fccab7935736ff68c95c3ddbfaaee|275fccab7935736ff68c95c3ddbfaaee 
Nach dem Login kopieren

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();
} 
}
Nach dem Login kopieren

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');
Nach dem Login kopieren

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'
}));
Nach dem Login kopieren

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();
}
});
Nach dem Login kopieren

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');
});
Nach dem Login kopieren
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!