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实用示例 缩址还原
Dec 28 NodeJs
用nodejs访问ActiveX对象,以操作Access数据库为例。
Dec 15 NodeJs
NodeJS学习笔记之网络编程
Aug 03 NodeJs
Nodejs实现的一个静态服务器实例
Dec 06 NodeJs
使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室
Aug 21 NodeJs
Nodejs express框架一个工程中同时使用ejs模版和jade模版
Dec 28 NodeJs
win系统下nodejs环境安装配置
May 04 NodeJs
详解nodejs模板引擎制作
Jun 14 NodeJs
nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)
Jul 05 NodeJs
nodejs中安装ghost出错的原因及解决方法
Oct 23 NodeJs
详解利用nodejs对本地json文件进行增删改查
Sep 20 NodeJs
nodejs中的异步编程知识点详解
Jan 17 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引用符&的用法详细解析
2013/08/22 PHP
PHP中Socket连接及读写数据超时问题分析
2016/07/19 PHP
PHP编程获取音频文件时长的方法【基于getid3类】
2017/04/20 PHP
详解cookie验证的php应用的一种SSO解决办法
2017/10/20 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
javascript下阻止表单重复提交、防刷新、防后退
2007/08/17 Javascript
js加解密 脚本解密
2008/02/22 Javascript
实现超用户体验 table排序javascript实现代码
2009/06/22 Javascript
javascript常见用法总结
2014/05/22 Javascript
JS实现动态给图片添加边框的方法
2015/04/01 Javascript
javascript实现多栏闭合展开式广告位菜单效果实例
2015/08/05 Javascript
基于javascript实现漂亮的页面过渡动画效果附源码下载
2015/10/26 Javascript
javascript跑马灯抽奖实例讲解
2020/04/17 Javascript
BootStrap table使用方法分析
2016/11/08 Javascript
Spring shiro + bootstrap + jquery.validate 实现登录、注册功能
2017/06/02 jQuery
基于JavaScript实现每日签到打卡轨迹功能
2018/11/29 Javascript
使用webpack将ES6转化ES5的实现方法
2019/10/13 Javascript
Vue-Cli项目优化操作的实现
2019/10/27 Javascript
javascript将扁平的数据转为树形结构的高效率算法
2020/02/27 Javascript
[01:58]DOTA2上海特级锦标赛现场采访:RTZ这个ID到底好不好
2016/03/25 DOTA
[00:14]护身甲盾
2019/03/06 DOTA
简单谈谈Python流程控制语句
2016/12/04 Python
如何运行带参数的python脚本
2019/11/15 Python
python带参数打包exe及调用方式
2019/12/21 Python
使用python-cv2实现视频的分解与合成的示例代码
2020/10/26 Python
描述JSP和Servlet的区别、共同点、各自应用的范围
2012/10/02 面试题
应届生体育教师自荐信
2013/10/03 职场文书
优秀毕业生推荐信
2013/11/02 职场文书
应聘收银员个人的求职信
2013/11/30 职场文书
校园之声广播稿
2014/01/31 职场文书
纪检干部先进事迹材料
2014/08/23 职场文书
不听老师话的万能检讨书
2014/10/04 职场文书
交通事故协议书范本
2014/11/18 职场文书
高中军训感想
2015/08/07 职场文书
MySQL库表名大小写的选择
2021/06/05 MySQL
漫画「古见同学有交流障碍症」第25卷封面公开
2022/03/21 日漫