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中读取中文文件编码问题、发送邮件和定时任务实例
Jan 01 NodeJs
nodejs读写json文件的简单方法(必看)
Mar 09 NodeJs
搭建简单的nodejs http服务器详解
Mar 09 NodeJs
详解nodejs爬虫程序解决gbk等中文编码问题
Apr 06 NodeJs
nodejs入门教程一:概念与用法简介
Apr 24 NodeJs
NodeJs模拟登陆正方教务
Apr 28 NodeJs
Nodejs搭建wss服务器教程
May 24 NodeJs
nodejs 图解express+supervisor+ejs的用法(推荐)
Sep 08 NodeJs
nodejs实现超简单生成二维码的方法
Mar 17 NodeJs
Nodejs中获取当前函数被调用的行数及文件名详解
Dec 12 NodeJs
nodejs环境使用Typeorm连接查询Oracle数据
Dec 05 NodeJs
nodeJS与MySQL实现分页数据以及倒序数据
Jun 05 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分页原理及实现
2007/01/02 PHP
php创建多级目录代码
2008/06/05 PHP
php在多维数组中根据键名快速查询其父键以及父键值的代码
2011/05/07 PHP
php中获取指定IP的物理地址的代码(正则表达式)
2011/06/23 PHP
浅析HTTP消息头网页缓存控制以及header常用指令介绍
2013/06/28 PHP
tp5(thinkPHP5)框架数据库Db增删改查常见操作总结
2019/01/10 PHP
纯js实现的论坛常用的运行代码的效果
2008/07/15 Javascript
JS Array对象入门分析
2008/10/30 Javascript
javascript中关于执行环境的杂谈
2011/08/14 Javascript
理解JAVASCRIPT中hasOwnProperty()的作用
2013/06/05 Javascript
javascript实现文字图片上下滚动的具体实例
2013/06/28 Javascript
JavaScript极简入门教程(二):对象和函数
2014/10/25 Javascript
jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载)
2016/04/08 Javascript
JavaScript将DOM事件处理程序封装为event.js 出现的低级错误问题
2016/08/03 Javascript
js 作用域和变量详解
2017/02/16 Javascript
jQuery图片瀑布流的简单实现代码
2017/03/15 Javascript
JS实现AES加密并与PHP互通的方法分析
2017/04/19 Javascript
AngularJS 监听变量变化的实现方法
2018/10/09 Javascript
koa2实现登录注册功能的示例代码
2018/12/03 Javascript
VuePress 中如何增加用户登录功能
2019/11/29 Javascript
微信小程序学习总结(四)事件与冒泡实例分析
2020/06/04 Javascript
为什么推荐使用JSX开发Vue3
2020/12/28 Vue.js
详解vue之自行实现派发与广播(dispatch与broadcast)
2021/01/19 Vue.js
[44:37]完美世界DOTA2联赛PWL S3 Forest vs access 第一场 12.11
2020/12/13 DOTA
详解python多线程、锁、event事件机制的简单使用
2018/04/27 Python
Python xlrd模块导入过程及常用操作
2020/06/10 Python
Python 基于jwt实现认证机制流程解析
2020/06/22 Python
使用CSS3编写类似iOS中的复选框及带开关的按钮
2016/04/11 HTML / CSS
美国批发供应商:Kole Imports
2019/04/10 全球购物
英国川宁茶官方网站:Twinings茶
2019/05/21 全球购物
大学班级文化建设方案
2014/05/06 职场文书
2014年街道办事处工作总结
2014/12/11 职场文书
党员进社区活动总结
2015/05/07 职场文书
python中的3种定义类方法
2021/11/27 Python
Pyhton爬虫知识之正则表达式详解
2022/04/01 Python
Nginx配置根据url参数重定向
2022/04/11 Servers