• express使用session


    -

    /**
     * session是服务器端的cookie,可以在服务器端存储一些公共数据
     * session是基于cookie工作的
     * 
     express-session的使用
     1、安装
     npm install express-session --save
     2、引入
     const session = require('express-session')
     3、配置中间件
     app.use(session({
        secret: 'keyboard cat',
        resave: false,
        saveUninitialized: true,
        cookie: { secure: true }
      }))
    
     配置项
     name:cookie的key
     store://配置分布式session  把session存储在数据库 或者 redis
     rolling:Boolean //在每次请求时 强行设置cookie,这将重置cookie的过期时间 默认是false
    
     4、销毁session
     req.session.destroy(function(err){
    
     })
     或者把过期时间设置为0
     req.session.cookie.maxAge = 0;
     */
    
    const express = require("express");
    const app = express();
    const session = require('express-session')
    
    
    // 配置express-session中间件
    app.use(session({
      secret: 'this is session',//生成服务器端 session 的签名
      name:'itying',//修改session 对应cookie的名称
    
      resave: false,//强制存储session 即使它没有变化
      saveUninitialized: true,//强制将未初始化的session 存储
      cookie: { //和cookie的配置一样
        maxAge:1000 * 60 * 60,//设置过期时间  
        secure: false //true 表示只有https协议才能访问 
      },
      rolling:true,//强制重置cookie过期时间
    }))
    
    app.get("/",(req,res) => {
      // 获取session
      if(req.session.username || req.session.age){
        res.send(req.session.username+"--"+req.session.age+"已经登录")
      } else{
        res.send("没有登录")
      }
      
    
    })
    
    app.get("/login",(req,res) => {
      // 设置session
      req.session.username = "张三";
      req.session.age = 20;
      res.send("执行登录")
    
    })
    
    app.get("/loginOut",(req,res) => {
      // 销毁session
      // 1、设置session的过期时间为0
      req.session.cookie.maxAge = 0; //这样会把所有的session都销毁
      // 2、销毁指定serssion
      req.session.username = "";
      // 3、销毁sesdsion destroy  //这样也是销毁所有session
      req.session.destroy(err => {
    
      })
    
      res.send("退出登录")
    
    })
    
    app.listen(3000)

    -

  • 相关阅读:
    解决asp.net mvc的跨域请求问题
    centos安装nodejs
    webapi中配置返回的时间数据格式
    centos安装django
    在Linux CentOS 6.6上安装Python 2.7.9
    nginx日志切割脚本
    apache单ip配置多端口多站点
    centos开启rewrite功能
    Fast Matrix Operations
    1400
  • 原文地址:https://www.cnblogs.com/fqh123/p/15257834.html
Copyright © 2020-2023  润新知