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 Express框架中处理404页面一个方式
May 28 NodeJs
NodeJS使用jQuery选择器操作DOM
Feb 13 NodeJs
nodejs中实现sleep功能实例
Mar 24 NodeJs
Nodejs如何搭建Web服务器
Mar 28 NodeJs
nodejs中模块定义实例详解
Mar 18 NodeJs
深入nodejs中流(stream)的理解
Mar 27 NodeJs
nodejs个人博客开发第一步 准备工作
Apr 12 NodeJs
nodejs模块学习之connect解析
Jul 05 NodeJs
NodeJs之word文件生成与解析的实现代码
Apr 01 NodeJs
nodejs检测因特网是否断开的解决方案
Apr 17 NodeJs
NodeJS实现一个聊天室功能
Nov 25 NodeJs
Nodejs实现微信分账的示例代码
Jan 19 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 万年历实现代码
2012/10/18 PHP
PHP json_decode函数详细解析
2014/02/17 PHP
PHP大转盘中奖概率算法实例
2014/10/21 PHP
PHP版QQ互联OAuth示例代码分享
2015/07/05 PHP
php中namespace use用法实例分析
2016/01/22 PHP
php file_get_contents取文件中数组元素的方法
2017/04/01 PHP
php输出形式实例整理
2020/05/05 PHP
jquery 指南/入门基础
2007/11/30 Javascript
麦鸡的TAB切换功能结合了javascript和css
2007/12/17 Javascript
用JavaScript实现动画效果的方法
2013/07/20 Javascript
Nginx上传文件全部缓存解决方案
2015/08/17 Javascript
JS组件Bootstrap Select2使用方法解析
2016/05/30 Javascript
jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
2017/02/10 Javascript
webpack2.0配置postcss-loader的方法
2017/08/17 Javascript
js实现无缝轮播图特效
2020/05/09 Javascript
vue使用video插件vue-video-player详解
2020/10/23 Javascript
[52:27]2018DOTA2亚洲邀请赛 3.31 小组赛B组 paiN vs Secret
2018/04/01 DOTA
Python中实现三目运算的方法
2015/06/21 Python
python多进程实现进程间通信实例
2017/11/24 Python
python分治法求二维数组局部峰值方法
2018/04/03 Python
Python中pillow知识点学习
2018/04/30 Python
详解python 3.6 安装json 模块(simplejson)
2019/04/02 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
2019/08/04 Python
Django ORM 常用字段与不常用字段汇总
2019/08/09 Python
pygame实现俄罗斯方块游戏(基础篇3)
2019/10/29 Python
python实现登录与注册系统
2020/11/30 Python
python批量合成bilibili的m4s缓存文件为MP4格式 ver2.5
2020/12/01 Python
不同浏览器对CSS3和HTML5的支持状况
2009/10/31 HTML / CSS
HTML5 Canvas中使用用路径描画圆弧
2015/01/01 HTML / CSS
Nike加拿大官网:Nike.com (CA)
2019/04/09 全球购物
怀旧香味蜡烛:Homesick
2019/11/02 全球购物
节能宣传周活动总结
2014/05/08 职场文书
转让协议书范本
2014/09/13 职场文书
学校领导干部民主生活会整改方案
2014/09/29 职场文书
给老婆的检讨书(搞笑版)
2015/05/06 职场文书
导游词之海南天涯海角
2019/12/05 职场文书