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中的非阻塞方法介绍
Jun 05 NodeJs
基于NodeJS的前后端分离的思考与实践(二)模版探索
Sep 26 NodeJs
详谈nodejs异步编程
Dec 04 NodeJs
nodejs开发微博实例
Mar 25 NodeJs
iPhone手机上搭建nodejs服务器步骤方法
Jul 06 NodeJs
NodeJS实现阿里大鱼短信通知发送
Jan 17 NodeJs
在windows上用nodejs搭建静态文件服务器的简单方法
Aug 11 NodeJs
NodeJS、NPM安装配置步骤(windows版本) 以及环境变量详解
May 13 NodeJs
Nodejs+angularjs结合multiparty实现多图片上传的示例代码
Sep 29 NodeJs
nodejs爬虫初试superagent和cheerio
Mar 05 NodeJs
nodejs中实现用户注册路由功能
May 20 NodeJs
nodejs利用readline提示输入内容实例代码
Jul 15 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技巧与注意事项分析
2011/02/03 PHP
PHP实现把文本中的URL转换为链接的auolink()函数分享
2014/07/29 PHP
Javascript代码混淆综合解决方案-Javascript在线混淆器
2006/12/18 Javascript
浅析return false的正确使用
2013/11/04 Javascript
javascript中的if语句使用介绍
2013/11/20 Javascript
jquery实现的3D旋转木马特效代码分享
2015/08/25 Javascript
理解js对象继承的N种模式
2016/01/25 Javascript
javascript闭包概念简单解析(推荐)
2016/06/03 Javascript
jQuery+CSS3文字跑马灯特效的简单实现
2016/06/25 Javascript
JS基于递归实现倒计时效果的方法
2016/11/26 Javascript
QRCode.js:基于JQuery的生成二维码JS库的使用
2017/06/23 jQuery
Vue.js实现列表清单的操作方法
2017/11/15 Javascript
实例教学如何写vue插件
2017/11/30 Javascript
JS实现二维数组横纵列转置的方法
2018/04/17 Javascript
vue filter 完美时间日期格式的代码
2019/08/14 Javascript
Python实现的Kmeans++算法实例
2014/04/26 Python
修改Python的pyxmpp2中的主循环使其提高性能
2015/04/24 Python
python实现颜色空间转换程序(Tkinter)
2015/12/31 Python
Python+django实现文件下载
2016/01/17 Python
Python定时任务sched模块用法示例
2018/07/16 Python
python读取xlsx的方法
2018/12/25 Python
Python+OpenCV图片局部区域像素值处理改进版详解
2019/01/23 Python
postman传递当前时间戳实例详解
2019/09/14 Python
python给指定csv表格中的联系人群发邮件(带附件的邮件)
2019/12/31 Python
详解python logging日志传输
2020/07/01 Python
python中关于数据类型的学习笔记
2020/07/19 Python
关于毕业的广播稿
2014/01/10 职场文书
数学教师个人工作总结
2015/02/06 职场文书
2015年暑期见闻
2015/07/14 职场文书
智慧人生:永远不需要向任何人解释你自己
2019/08/20 职场文书
亲情作文之母爱
2019/09/25 职场文书
何时使用Map来代替普通的JS对象
2021/04/29 Javascript
浅谈node.js中间件有哪些类型
2021/04/29 Javascript
在CSS中使用when/else的方法
2022/01/18 HTML / CSS
Pillow图像处理库安装及使用
2022/04/12 Python
tree shaking对打包体积优化及作用
2022/07/07 Java/Android