700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Nodejs中session的简单使用及通过session实现身份验证办法【node.js】

Nodejs中session的简单使用及通过session实现身份验证办法【node.js】

时间:2022-09-07 16:52:02

相关推荐

Nodejs中session的简单使用及通过session实现身份验证办法【node.js】

web前端|js教程

node.js_session使用,nodejs身份验证,session身份验证

web前端-js教程

session 不用多介绍,使一个http可以对应一个终端用户。

一键采集淘宝客源码,vscode左边文件不见,ubuntu桌面挂了,在线tomcat源代码,sqlite3除法都等于0,如何自己写一个定时爬虫配置框架,php java 转换,seo技术培训湖北,下载网站的搭建,数据分析网站模板lzw

session的本质使用cookie来实现。

网站源码分几种,vscode提示小程序插件,ubuntu怎么刻录,中标麒麟重启tomcat,爬虫技术关键,php 首字母查询,站长工具seo外推,在线图片设计制作网站源码,转盘模板lzw

原理大概是:http 带来服务端提前设置 cookie,服务端拿到标示用户身份的cookie, 再去固定地点(数据库,文件)检索出对应的用户身份。把身份赋值给本次请求的request,在程序处理中就知晓了用户的身份了。(在PHP,ASP或者其他服务端语言中都自动帮你实现了)

websocket 实时刷新源码,ubuntu c 知乎,全家桶爬虫教程,php vsort,seo 团队排名lzw

实现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 save session if unmodifiedsaveUninitialized: false, // don 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);});

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。