国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

Nodejs中session的簡單使用及通過session實現身份驗證的方法

2024-05-06 16:27:59
字體:
來源:轉載
供稿:網友
session的本質使用cookie來實現。本文給大家介紹Nodejs中session的簡單使用及通過session實現身份驗證的方法,對node.js session相關知識感興趣的朋友一起學習吧
 

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

session的本質使用cookie來實現。

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

實現cookie

需要為每一個用戶設置一個可以標示用戶身份的cookie。可以使用如下規則

注冊郵箱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

把所有非靜態資源的請求都定向到這里處理。獲取cookie,把cookie拆分并在數據庫查找符合條件的用戶。最后使用 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實現身份驗證

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 unmodifiedsaveUninitialized: false, // don't create session until something storedsecret: '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');});


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 田林县| 千阳县| 宜君县| 喀喇沁旗| 崇明县| 通城县| 岳阳县| 中宁县| 庐江县| 岑巩县| 武清区| 凤城市| 宁都县| 秦皇岛市| 饶河县| 塘沽区| 延安市| 古蔺县| 丰顺县| 库伦旗| 西乡县| 玉田县| 肇州县| 海宁市| 诏安县| 光泽县| 泾源县| 广安市| 吉木萨尔县| 保靖县| 桑日县| 金溪县| 镇赉县| 社会| 纳雍县| 厦门市| 井研县| 阿坝县| 乌拉特中旗| 贵港市| 筠连县|