express-session

作者: 未vv | 来源:发表于2020-03-21 23:55 被阅读0次

    cookie是存储在浏览器上的,session是保存在服务器上的

    session只要关闭浏览器就会销毁
    session的原理:
    客户端第一次请求服务端时,服务端会创建一个session对象,生成一个类似于key:value的键值对,然后将key(cookie)返回到浏览器,浏览器下次访问时携带key(cookie),找到对应的session对象,客户的信息都存在session里

    在express中使用express-session中间件

    npm install express-session --save
    
    const session = require('express-session')
    
    //配置中间件
    app.use(session({
      secret: 'lalala', //一个String类型的字符串,作为服务器生成session的签名
      name:'session_id', //设置cookie保存在本地的名字,默认为connect_sid
      resave: false, //强制保存session 即使它没有变换,默认为true,建议设为false
      saveUninitialized: true,//强制初始化session 如果没有设置session也会自动返回一个connect_id,建议设为true
      cookie: { secure: false}, //secure设置为true表示只有在https协议下才可以访问cookie,cookie的设置和cookie-parser的选项基本相同,也可以设置过期时间maxAge等
    rolling:true //表示用户最后一次操作后开始计算cookie过期时间 ,即每次请求时重新计算cookie过期时间
    }))
    

    设置和获取session

    req.session.userInfo = 'jiang'
    

    session 销毁

    req.session.destroy((err)=>{
        if(err){
          console.log(err)
        }else{
          res.redirect('/login')
        }
      })
    

    相关文章

      网友评论

        本文标题:express-session

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