源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

nodejs 的 session 简单使用

  • 时间:2020-02-29 11:33 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:nodejs 的 session 简单使用
[b]session的本质使用cookie来实现。[/b] 原理大概是:http 带来服务端提前设置 cookie,服务端拿到标示用户身份的cookie, 再去固定地点(数据库,文件)检索出对应的用户身份。把身份赋值给本次请求的request,在程序处理中就知晓了用户的身份了。(在PHP,ASP或者其他服务端语言中都自动帮你实现了) [b]实现cookie[/b]   需要为每一个用户设置一个可以标示用户身份的cookie。可以使用如下规则   注册邮箱MD5值+密码MD5值+随机码MD5值。(仅仅举例,这可能并不是一个好的方案) 服务端代码片段:
[u]复制代码[/u] 代码如下:
res.setHeader("Set-Cookie", ["sid="+newUser.toCookie()+";path=/;domain="+config.domain+";expires="+new Date("2030") ]);
cookie
[u]复制代码[/u] 代码如下:
sid=275fccab7935736ff68c95c3ddbfaaee|275fccab7935736ff68c95c3ddbfaaee|275fccab7935736ff68c95c3ddbfaaee
[b]使用 cookie 获取用户身份,设置session[/b] 把所有非静态资源的请求都定向到这里处理。获取cookie,把cookie拆分并在数据库查找符合条件的用户。最后使用 next 跳转到下一个请求逻辑。 [b]下一个请求逻辑就可是直接使用 req.session.user 来获取 user 对象了。[/b]
[u]复制代码[/u] 代码如下:
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 简单使用的全部内容,希望能给大家一个参考,也希望大家多多支持编程素材网。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部