-
/** * 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)
-