Rumah > hujung hadapan web > tutorial js > Penggunaan sesi yang mudah dalam Nodejs dan kaedah pengesahan melalui sessions_node.js

Penggunaan sesi yang mudah dalam Nodejs dan kaedah pengesahan melalui sessions_node.js

WBOY
Lepaskan: 2016-05-16 15:16:15
asal
1445 orang telah melayarinya

Sesi tidak memerlukan pengenalan, supaya satu http boleh sepadan dengan satu pengguna akhir.

Intipati sesi dilaksanakan menggunakan kuki.

Prinsipnya mungkin: http membawa pelayan untuk menetapkan kuki lebih awal, pelayan mendapat kuki yang menunjukkan identiti pengguna, dan kemudian pergi ke lokasi tetap (pangkalan data, fail) untuk mendapatkan semula identiti pengguna yang sepadan. Berikan identiti kepada permintaan permintaan ini dan identiti pengguna akan diketahui semasa pemprosesan program. (Ia dilaksanakan secara automatik untuk anda dalam PHP, ASP atau bahasa sebelah pelayan lain)

Laksanakan kuki

Kuki yang mengenal pasti pengguna perlu ditetapkan untuk setiap pengguna. Anda boleh menggunakan peraturan berikut

Nilai MD5 alamat e-mel berdaftar, nilai kata laluan MD5 dan nilai kod rawak MD5. (Sekadar contoh, ini mungkin bukan penyelesaian yang baik)

Coretan kod pelayan:

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

kuki

sid=275fccab7935736ff68c95c3ddbfaaee|275fccab7935736ff68c95c3ddbfaaee|275fccab7935736ff68c95c3ddbfaaee 
Salin selepas log masuk

Gunakan kuki untuk mendapatkan identiti pengguna dan menyediakan sesi

Arahkan semua permintaan sumber bukan statik ke sini untuk diproses. Dapatkan kuki, belah kuki dan cari pengguna yang layak dalam pangkalan data. Akhir sekali, gunakan sebelah untuk melompat ke logik permintaan seterusnya.

Logik permintaan seterusnya ialah menggunakan req.session.user secara langsung untuk mendapatkan objek pengguna.

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();
} 
}
Salin selepas log masuk

Izinkan saya bercakap tentang cara nodejs melaksanakan pengesahan identiti melalui sesi

pengesahan sesi ekspres nodejs

1) Import modul

var session = require('express-session');
var cookieParser = require('cookie-parser');
Salin selepas log masuk

2) Sapukan kuki dan sesi

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'
}));
Salin selepas log masuk

3) Apabila meminta, gunakan pengesahan

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();
}
});
Salin selepas log masuk

4) Reka bentuk log masuk

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');
});
Salin selepas log masuk
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan