在登录页面设置session后在其他页面无法获取
利用express框架,先引用session模块:
var session = require("express-session");
在路由中间件前面设置,session中间件,一定要设置在路由前面,因为中间件是顺序执行的
app.use(session({
secret:"asdaasd", //设置签名秘钥 内容可以任意填写
cookie:{ maxAge:1000*60*60 }, //设置cookie的过期时间
resave:false, //强制保存,如果session没有被修改也要重新保存
saveUninitialized:true, //如果原先没有session那么久设置,否则不设置
}))
这样设置完,在路由里面就可以设置session了。使用最多的场景就是在登陆的时候记录登录用户名。
未登录时页面:
登陆之后页面:
路由设置:
登陆的时候直接设置session。
理论上这里设置了session,只要不被清除,session就会存在,其他的路由也能获取到session的值
但使用ajax请求的时候,会出现无法获取到设置的session值。
主要是设置ajax请求的接口路径与设置的路径存在同源策略问题
这样写的ajax会出现无法获取session的问题,改成这样可以解决:
直接请求相对路径的接口。