欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nodejs中session的簡單使用及通過session實現(xiàn)身份驗證的方法

 更新時間:2016年02月04日 09:14:38   作者:Jun.lu  
session的本質使用cookie來實現(xiàn)。本文給大家介紹Nodejs中session的簡單使用及通過session實現(xiàn)身份驗證的方法,對node.js session相關知識感興趣的朋友一起學習吧

session 不用多介紹,使一個http可以對應一個終端用戶。

session的本質使用cookie來實現(xiàn)。

原理大概是:http 帶來服務端提前設置 cookie,服務端拿到標示用戶身份的cookie, 再去固定地點(數(shù)據(jù)庫,文件)檢索出對應的用戶身份。把身份賦值給本次請求的request,在程序處理中就知曉了用戶的身份了。(在PHP,ASP或者其他服務端語言中都自動幫你實現(xiàn)了)

實現(xiàn)cookie

需要為每一個用戶設置一個可以標示用戶身份的cookie??梢允褂萌缦乱?guī)則

注冊郵箱MD5值+密碼MD5值+隨機碼MD5值。(僅僅舉例,這可能并不是一個好的方案)

服務端代碼片段:

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

cookie

sid=275fccab7935736ff68c95c3ddbfaaee|275fccab7935736ff68c95c3ddbfaaee|275fccab7935736ff68c95c3ddbfaaee 

使用 cookie 獲取用戶身份,設置session

把所有非靜態(tài)資源的請求都定向到這里處理。獲取cookie,把cookie拆分并在數(shù)據(jù)庫查找符合條件的用戶。最后使用 next 跳轉到下一個請求邏輯。

下一個請求邏輯就可是直接使用 req.session.user 來獲取 user 對象了。

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();
} 
}

下面給大家說說nodejs通過session實現(xiàn)身份驗證

nodejs express session 身份驗證

1)引入模塊

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

2)應用cookie及session

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)請求時,應用身份驗證

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)登陸設計

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');
});

相關文章

  • package.json與package-lock.json創(chuàng)建及使用詳解

    package.json與package-lock.json創(chuàng)建及使用詳解

    這篇文章主要為大家介紹了package.json與package-lock.json創(chuàng)建及使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • node.js讀取文件到字符串的方法

    node.js讀取文件到字符串的方法

    這篇文章主要介紹了node.js讀取文件到字符串的方法,涉及readFileSync方法的使用技巧,需要的朋友可以參考下
    2015-06-06
  • node.js爬蟲框架node-crawler初體驗

    node.js爬蟲框架node-crawler初體驗

    這篇文章主要介紹了node.js爬蟲框架node-crawler的相關資料,幫助大家利用node.js進行爬蟲,感興趣的朋友可以了解下
    2020-10-10
  • node.js實現(xiàn)token身份驗證的示例代碼

    node.js實現(xiàn)token身份驗證的示例代碼

    本文主要介紹了node.js實現(xiàn)token身份驗證的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Node.js net模塊功能及事件監(jiān)聽用法分析

    Node.js net模塊功能及事件監(jiān)聽用法分析

    這篇文章主要介紹了Node.js net模塊功能及事件監(jiān)聽用法,結合實例形式分析了net模塊功能及事件監(jiān)聽相關操作技巧,需要的朋友可以參考下
    2019-01-01
  • node.js支持多用戶web終端實現(xiàn)及安全方案

    node.js支持多用戶web終端實現(xiàn)及安全方案

    這篇文章主要介紹了node.js支持多用戶web終端實現(xiàn)方案以及web終端安全性保證的解決方法,一起學習參考下。
    2017-11-11
  • Node.js中如何合并兩個復雜對象詳解

    Node.js中如何合并兩個復雜對象詳解

    下面這篇文章主要給大家介紹了在Node.js中如何合并兩個復雜對象的方法,文中給出了詳細的示例代碼,相信對大家的理解和學習具有一定的參考借鑒價值,有需要的朋友可以參考,下面來一起看看吧。
    2016-12-12
  • nodejs中express入門和基礎知識點學習

    nodejs中express入門和基礎知識點學習

    這篇文章給大家分享了關于學習nodejs中express入門和基礎知識點內(nèi)容,有興趣的朋友們參考下。
    2018-09-09
  • node.js中的fs.fstat方法使用說明

    node.js中的fs.fstat方法使用說明

    這篇文章主要介紹了node.js中的fs.fstat方法使用說明,本文介紹了fs.fstat的方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • Node.js事件循環(huán)(Event Loop)和線程池詳解

    Node.js事件循環(huán)(Event Loop)和線程池詳解

    這篇文章主要介紹了Node.js事件循環(huán)(Event Loop)和線程池詳解,這篇文章比較淺顯地探討了有關事件循環(huán)的內(nèi)部運作機制和技術細節(jié),都是經(jīng)過深思熟慮的,需要的朋友可以參考下
    2015-01-01

最新評論