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 相关文章推荐
golang、python、php、c++、c、java、Nodejs性能对比
Mar 12 NodeJs
nodejs npm包管理的配置方法及常用命令介绍
Jun 05 NodeJs
Nodejs中session的简单使用及通过session实现身份验证的方法
Feb 04 NodeJs
nodejs修复ipa处理过的png图片
Feb 17 NodeJs
nodejs微信公众号支付开发
Sep 19 NodeJs
nodejs基础知识
Feb 03 NodeJs
Nodejs进阶:express+session实现简易登录身份认证
Apr 24 NodeJs
nodejs中安装ghost出错的原因及解决方法
Oct 23 NodeJs
Nodejs模块载入运行原理
Feb 23 NodeJs
webpack打包nodejs项目的方法
Sep 26 NodeJs
nodejs图片处理工具gm用法小结
Dec 12 NodeJs
Sublime Text3 配置 NodeJs 环境的方法
May 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静态文件生成类实例分析
2015/01/03 PHP
Yii2中如何使用modal弹窗(基本使用)
2016/05/30 PHP
THINKPHP截取中文字符串函数实例代码
2017/03/20 PHP
PHP中关键字interface和implements详解
2017/06/14 PHP
php实现对短信验证码发送次数的限制实例讲解
2021/03/04 PHP
在IE下:float属性会影响offsetTop的取值
2006/12/22 Javascript
JavaScript使用cookie
2007/02/02 Javascript
js onload事件不起作用示例分析
2013/10/09 Javascript
基于JQuery实现滚动到页面底端时自动加载更多信息
2014/01/31 Javascript
jquery操作select大全
2014/04/25 Javascript
一个JavaScript操作元素定位元素的实例
2014/10/29 Javascript
Node.js返回JSONP详解
2016/05/18 Javascript
jQuery DataTables插件自定义Ajax分页实例解析
2020/04/28 Javascript
jQuery封装的屏幕居中提示信息代码
2016/06/08 Javascript
扩展bootstrap的modal模态框-动态添加modal框-弹出多个modal框
2017/02/21 Javascript
angularjs使用gulp-uglify压缩后执行报错的解决方法
2018/03/07 Javascript
详解使用create-react-app添加css modules、sasss和antd
2018/07/31 Javascript
JS实现字符串翻转的方法分析
2018/08/31 Javascript
JS实现十分钟倒计时代码实例
2018/10/18 Javascript
基于vue-cli搭建多模块且各模块独立打包的项目
2019/06/12 Javascript
原生js实现商品筛选功能
2019/10/28 Javascript
小程序简单两栏瀑布流效果的实现
2019/12/18 Javascript
Python字符串和文件操作常用函数分析
2015/04/08 Python
Python函数可变参数定义及其参数传递方式实例详解
2015/05/25 Python
Python常用知识点汇总
2016/05/08 Python
python实现远程通过网络邮件控制计算机重启或关机
2018/02/22 Python
Django框架登录加上验证码校验实现验证功能示例
2019/05/23 Python
基于django2.2连oracle11g解决版本冲突的问题
2020/07/02 Python
德国骆驼商店:ActiveFashionWorld
2017/11/18 全球购物
洛杉矶生活休闲而精致的基础品牌:Mika Jaymes
2018/01/07 全球购物
端口镜像是怎么实现的
2014/03/25 面试题
大学同学聚会邀请函
2014/01/29 职场文书
教学实验楼管理制度
2014/02/01 职场文书
房地产财务管理制度
2014/02/02 职场文书
大学班长竞选稿
2015/11/20 职场文书
喜迎建国70周年:有关爱国的名言名句
2019/09/24 职场文书