美文网首页
node.js session

node.js session

作者: Vergil_wj | 来源:发表于2021-07-21 08:36 被阅读0次

session 是另一种记录客户状态的机制,与 cookie 保存在浏览器端不同,session 保存在服务器当中。

当客户端访问服务器时服务器会生成一个 session 对象,对象中保存的是 key:value 值,同时服务器会将 key 传回给客户端的 cookie 当中;当用户第二次访问服务器时,就会把 cookie 当中的 key 传回到服务器当中,最后服务器会把 value 值返回给客户端。

所以 key 是全局唯一的标识,客户端和服务端依靠这个全局唯一的标识来访问会话信息数据。

session 的本质和原理就是加密的 cookie。

安装 express-session
npm install express-session --save
引入 express-session 模块
var session = require('express-session')
使用 express-session 中间件

使用默认的:

app.use(session())

也可以自己配置:

app.use(session({
    secret:"abcd",  //随便写,用于加密混淆
    resave:true,  //保存到磁盘上
    cookie:{
        maxAge:7*24*60*60*1000  //有效期 7 天
     },  //使用默认的 cookie{},有效期为一个会话
    saveUninitialized:true  //保存初始化
}))

定义一个路由测试:

var sessionRouter = require("./routers/sessionModules.js")
app.use('/sessioni',sessionRouter);

sessionModules.js 文件

var express = require('express');
var router = express.Router();

/* GET users listing. */
router.get('/', function(req, res, next) {
  res.send('respond with a resource');
});

//设置 session
router('/setSession',(req,res)=>{
    //登录之后,要能够快速获取 user 的姓名,vip 等级,是否登录
    req.session.isLogin  = 'true';
    req.session.username = '小明';
    req.session.vipLevel = 5;

    req.session.maxAge = 10000;  //重置 session 有效期 10 秒,10秒之后 session 过期
    res.send('登录状态已经设置到 session 中')
})

// 获取 session
router.get('/getSession',(req,res)=>{
    if(req.session.isLogin == 'true'){
        res.send('欢迎等级为' + req.session.vipLevel + '的' +req.session.username )
    }else{
        res.send("尚未登录")
    }
})

// 销毁 session
router.get('exitSession',(req,res)=>{
    req.session.destroy(()=>{
        console.log("销毁 session 完毕");
    })
    res.send('退出成功');
})

module.exports = router;

参考

https://www.expressjs.com.cn/resources/middleware/session.html

相关文章

  • Node.js防范csrf攻击

    csurf Node.js 防范csrf攻击中间件 需要session中间件(如:express-session)...

  • node.js session

    session 是另一种记录客户状态的机制,与 cookie 保存在浏览器端不同,session 保存在服务器当中...

  • Node.js -- cookie and session

    1. cookie 1,引入模块 var express = require ("express"); var ...

  • cookie 和 session

    cookie 和 session 作为对客户端身份的确定,这里写的是在 node.js 的 express 框架下...

  • node.js学习(12)——nodejs模板引擎jade(1)

    上一节-node.js学习(11)—cookie和session的使用 1.模板引擎 什么是模板引擎,我们可以分开...

  • node.js: cookie和session

    express:1.数据2.中间件 http-无状态的cookie、session request 浏览器访问服务...

  • Session 的管理

    《深入浅出 Node.js》阅读随笔 随着用户访问量的增加,服务器会不断增加 Session,并分配给它们更多的内...

  • session 学习总结

    参考: Session Handling Session Functions (一)session session...

  • cookie,session使用

    session使用: //启动session的初始化 session_start(); //注册session变量...

  • PHP的session机制

    PHP机制使用session 开启session --- session_start()...

网友评论

      本文标题:node.js session

      本文链接:https://www.haomeiwen.com/subject/afkfpltx.html