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 相关文章推荐
使用forever管理nodejs应用教程
Jun 03 NodeJs
nodejs 提示‘xxx’ 不是内部或外部命令解决方法
Nov 20 NodeJs
nodejs修复ipa处理过的png图片
Feb 17 NodeJs
基于Nodejs利用socket.io实现多人聊天室
Feb 22 NodeJs
详解IWinter 一个路由转控制器的 Nodejs 库
Nov 15 NodeJs
NodeJs form-data格式传输文件的方法
Dec 13 NodeJs
nodejs多版本管理总结
Apr 03 NodeJs
Nodejs使用Mongodb存储与提供后端CRD服务详解
Sep 04 NodeJs
详解Nodejs get获取远程服务器接口数据
Mar 26 NodeJs
nodejs检测因特网是否断开的解决方案
Apr 17 NodeJs
在NodeJs中使用node-schedule增加定时器任务的方法
Jun 08 NodeJs
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
Aug 20 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简单操作mysql数据库的类
2015/04/16 PHP
PHP使用http_build_query()构造URL字符串的方法
2016/04/02 PHP
PHP实现路由映射到指定控制器
2016/08/13 PHP
PHP yii实现model添加默认值的方法(两种方法)
2016/11/10 PHP
laravel 获取当前url的别名方法
2019/10/11 PHP
Jquery 常用方法经典总结
2010/01/28 Javascript
ExtJS4中使用mixins实现多继承示例
2013/12/03 Javascript
JavaScript判断变量是否为空的自定义函数分享
2015/01/31 Javascript
浅谈JavaScript中的字符编码转换问题
2015/07/07 Javascript
使用jQuery实现WordPress中的Ctrl+Enter和@评论回复
2016/05/21 Javascript
jQuery基于函数重载实现自定义Alert函数样式的方法
2016/07/27 Javascript
js实现加载更多功能实例
2016/10/27 Javascript
js中通过getElementsByName访问name集合对象的方法
2016/10/31 Javascript
angularjs实现上拉加载和下拉刷新数据功能
2017/06/12 Javascript
Bootstrap与Angularjs的模态框实例代码
2017/08/03 Javascript
Vue 配合eiement动态路由,权限验证的方法
2018/09/26 Javascript
vue+VeeValidate 校验范围实例详解(部分校验,全部校验)
2018/10/19 Javascript
详谈vue中router-link和传统a链接的区别
2020/07/22 Javascript
在Vue中使用Select选择器拼接label的操作
2020/10/22 Javascript
python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
2013/12/08 Python
利用Python的Flask框架来构建一个简单的数字商品支付解决方案
2015/03/31 Python
Python中循环引用(import)失败的解决方法
2018/04/22 Python
Python定时发送消息的脚本:每天跟你女朋友说晚安
2018/10/21 Python
利用python修改json文件的value方法
2018/12/31 Python
Python Matplotlib 基于networkx画关系网络图
2019/07/10 Python
浅析Python迭代器的高级用法
2020/07/16 Python
BASIC HOUSE官方旗舰店:韩国著名的服装品牌
2018/09/27 全球购物
酒店应聘自荐信
2013/11/09 职场文书
公司企业表扬信
2014/01/11 职场文书
运动会通讯稿50字
2014/01/30 职场文书
餐厅经理岗位职责范本
2014/02/17 职场文书
2014年党务公开实施方案
2014/02/27 职场文书
五年后的职业生涯规划
2014/03/04 职场文书
监察局领导班子四风问题整改措施思想汇报
2014/10/05 职场文书
三严三实·严以用权心得体会
2016/01/12 职场文书
一次SQL查询优化原理分析(900W+数据从17s到300ms)
2022/06/10 SQL Server