nodejs 的 session 简单使用

所属分类: 网络编程 / JavaScript 阅读数: 759
收藏 0 赞 0 分享

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 简单使用的全部内容,希望能给大家一个参考,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

JavaScript this关键字指向常用情况解析

这篇文章主要介绍了JavaScript this关键字指向常用情况解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Vue-cli打包后如何本地查看的操作

这篇文章主要介绍了Vue-cli打包后如何本地查看的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

vue cli 3.0通用打包配置代码,不分一二级目录

这篇文章主要介绍了vue cli 3.0通用打包配置代码,不分一二级目录,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

JavaScript事件循环及宏任务微任务原理解析

这篇文章主要介绍了JavaScript事件循环及宏任务微任务原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

关于vue-cli3打包代码后白屏的解决方案

这篇文章主要介绍了关于vue-cli3打包代码后白屏的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

vue打包静态资源后显示空白及static文件路径报错的解决

这篇文章主要介绍了vue打包静态资源后显示空白及static文件路径报错的解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

vue-cli3访问public文件夹静态资源报错的解决方式

这篇文章主要介绍了vue-cli3访问public文件夹静态资源报错的解决方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

JS继承实现方法及优缺点详解

这篇文章主要介绍了JS继承实现方法及优缺点详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

vue或react项目生产环境去掉console.log的操作

这篇文章主要介绍了vue或react项目生产环境去掉console.log的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题

这篇文章主要介绍了解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享
查看更多