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文件操作模块FS(File System)常用函数简明总结
Jun 05 NodeJs
使用DNode实现php和nodejs之间通信的简单实例
Jul 06 NodeJs
NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法
Jul 26 NodeJs
Nodejs 搭建简单的Web服务器详解及实例
Nov 30 NodeJs
详解nodejs 文本操作模块-fs模块(三)
Dec 22 NodeJs
mac下的nodejs环境安装的步骤
May 24 NodeJs
Nodejs 复制文件/文件夹的方法
Aug 24 NodeJs
nodeJS模块简单用法示例
Apr 21 NodeJs
通过nodejs 服务器读取HTML文件渲染到页面的方法
May 17 NodeJs
Nodejs中使用puppeteer控制浏览器中视频播放功能
Aug 26 NodeJs
nodejs对mongodb数据库的增加修删该查实例代码
Jan 05 NodeJs
nodejs如何在package.json中设置多条启动命令
Mar 16 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内置访问资源的超时时间 time_out file_get_contents read_file
2013/06/03 PHP
解析PHPExcel使用的常用说明以及把PHPExcel整合进CI框架的介绍
2013/06/24 PHP
用php简单实现加减乘除计算器
2014/01/06 PHP
浅谈Laravel模板实体转义带来的坑
2019/10/22 PHP
PHP优化之批量操作MySQL实例分析
2020/04/23 PHP
javascript里的条件判断
2007/02/27 Javascript
jquery validator 插件增加日期比较方法
2010/02/21 Javascript
读jQuery之十二 删除事件核心方法
2011/07/31 Javascript
在Node.js应用中使用Redis的方法简介
2015/06/24 Javascript
JavaScript让Textarea支持tab按键的方法
2015/06/26 Javascript
基于javascript实现listbox左右移动
2016/01/29 Javascript
文本框只能输入数字的js代码(含小数点)
2016/07/10 Javascript
jquery之别踩白块游戏的简单实现
2016/07/25 Javascript
js实现统计字符串中特定字符出现个数的方法
2016/08/02 Javascript
jQuery.cookie.js实现记录最近浏览过的商品功能示例
2017/01/23 Javascript
微信小程序swiper组件用法实例分析【附源码下载】
2017/12/07 Javascript
vue 设置proxyTable参数进行代理跨域
2018/04/09 Javascript
VUE实现可随意拖动的弹窗组件
2018/09/25 Javascript
Vue 实现html中根据类型显示内容
2019/10/28 Javascript
JavaScript实现简单贪吃蛇效果
2020/03/09 Javascript
H5+css3+js搭建带验证码的登录页面
2020/10/11 Javascript
解决vue elementUI 使用el-select 时 change事件的触发问题
2020/11/17 Vue.js
[01:05:40]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第三场
2014/05/24 DOTA
python编程-将Python程序转化为可执行程序[整理]
2007/04/09 Python
Python and、or以及and-or语法总结
2015/04/14 Python
在python带权重的列表中随机取值的方法
2019/01/23 Python
Python爬虫之UserAgent的使用实例
2019/02/21 Python
PyCharm2019安装教程及其使用(图文教程)
2019/09/29 Python
Python 写了个新型冠状病毒疫情传播模拟程序
2020/02/14 Python
python数据爬下来保存的位置
2020/02/17 Python
python输出结果刷新及进度条的实现操作
2020/07/13 Python
大学生优秀自荐信范文
2014/02/25 职场文书
领导班子四风问题对照检查材料
2014/09/27 职场文书
node.js如何自定义实现一个EventEmitter
2021/07/16 Javascript
golang操作redis的客户端包有多个比如redigo、go-redis
2022/04/14 Golang
深入理解MySQL中MVCC与BufferPool缓存机制
2022/05/25 MySQL