nodejs 的 session 简单使用


Posted in NodeJs onJune 06, 2016

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 相关文章推荐
轻松创建nodejs服务器(5):事件处理程序
Dec 18 NodeJs
NodeJS Web应用监听sock文件实例
Feb 18 NodeJs
Nodejs中 npm常用命令详解
Jul 04 NodeJs
nodejs实现邮件发送服务实例分享
Mar 29 NodeJs
nodejs项目windows下开机自启动的方法
Nov 22 NodeJs
nodejs实现爬取网站图片功能
Dec 14 NodeJs
nodejs结合Socket.IO实现的即时通讯功能详解
Jan 12 NodeJs
nodejs简单访问及操作mysql数据库的方法示例
Mar 15 NodeJs
NodeJS安装图文教程
Apr 19 NodeJs
nodejs一个简单的文件服务器的创建方法
Sep 13 NodeJs
通过实例了解Nodejs模块系统及require机制
Jul 16 NodeJs
如何利用nodejs实现命令行游戏
Nov 24 NodeJs
详解nodejs与javascript中的aes加密
May 22 #NodeJs
NodeJS连接MongoDB数据库时报错的快速解决方法
May 13 #NodeJs
Nodejs获取网络数据并生成Excel表格
Mar 31 #NodeJs
Nodejs学习item【入门手上】
May 05 #NodeJs
NodeJS的Promise的用法解析
May 05 #NodeJs
Windows 系统下设置Nodejs NPM全局路径
Apr 26 #NodeJs
Nodejs Stream 数据流使用手册
Apr 17 #NodeJs
You might like
php使用mkdir创建多级目录入门例子
2014/05/10 PHP
php定义参数数量可变的函数用法实例
2015/03/16 PHP
PHP实现可精确验证身份证号码的工具类示例
2018/05/31 PHP
JavaScript之HTMLCollection接口代码
2011/04/27 Javascript
js汉字转拼音实现代码
2013/02/06 Javascript
使用jQuery制作基础的Web图片轮播效果
2016/04/22 Javascript
javascript过滤数组重复元素的实现方法
2017/05/03 Javascript
详解webpack解惑:require的五种用法
2017/06/09 Javascript
vue2.0 和 animate.css的结合使用
2017/12/12 Javascript
jQuery实现点击DIV同时点击CheckBox,并为DIV上背景色的实例
2017/12/18 jQuery
vue.js input框之间赋值方法
2018/08/24 Javascript
Node.js 中判断一个文件是否存在
2020/08/24 Javascript
JS变量提升及函数提升实例解析
2020/09/03 Javascript
js实现特别简单的钟表效果
2020/09/14 Javascript
JavaScript实现雪花飘落效果
2020/12/27 Javascript
[05:13]2018DOTA2亚洲邀请赛主赛事第二日战况回顾 LGD、VG双雄携手晋级
2018/04/05 DOTA
[47:43]完美世界DOTA2联赛PWL S3 Magama vs GXR 第二场 12.19
2020/12/24 DOTA
Python 关于反射和类的特殊成员方法
2017/09/14 Python
对python的unittest架构公共参数token提取方法详解
2018/12/17 Python
python实现网页自动签到功能
2019/01/21 Python
PyTorch的深度学习入门之PyTorch安装和配置
2019/06/27 Python
解决pytorch报错:AssertionError: Invalid device id的问题
2020/01/10 Python
python求一个字符串的所有排列的实现方法
2020/02/04 Python
Python面向对象实现方法总结
2020/08/12 Python
浅析Python中字符串的intern机制
2020/10/03 Python
html5的input的required使用中遇到的问题及解决方法
2018/04/24 HTML / CSS
阿玛尼美妆加拿大官方商城:Giorgio Armani Beauty加拿大
2017/10/24 全球购物
化妆师职业生涯规划书
2014/02/16 职场文书
酒店行政人事部经理职务说明书
2014/02/26 职场文书
经典促销广告词大全
2014/03/19 职场文书
合作协议书范本
2014/04/17 职场文书
护士实习求职信
2014/06/22 职场文书
执法作风整顿剖析材料
2014/10/11 职场文书
2015年财务人员工作总结
2015/04/10 职场文书
三好学生评选事迹材料(2016精选版)
2016/02/25 职场文书
解决golang post文件时Content-Type出现的问题
2021/05/02 Golang