问题1 用户授权登陆之后 如何保存登陆信息问题2 如果用户打开一个页面一直没动 身份已经过期 页面上有一个按钮的 用户再点这个按钮怎么知道用户身份已经过期 禁止它操作问题3 使用vue的路由单页 页面并没有刷新 express该如何判断用户切换页面的时候 身份是否过期
业精于勤,荒于嬉;行成于思,毁于随。
express-session在Express4.x版本之後,session和cookies等模組不再包含在Express框架中,需要單獨新增對應模組。
$ npm install express-session
var session = require('express-session'); var app = express(); // ... app.use(session({ // name: 设置 cookie 中,保存 session 的字段名称,默认为 connect.sid 。 // store: session 的存储方式,默认存放在内存中,也可以使用 redis,mongodb 等。Express 生态中都有相应模块的支持。 // secret: 通过设置的 secret 字符串,来计算 hash 值并放在 cookie 中,使产生的 signedCookie 防篡改。 // cookie: 设置存放 session id 的 cookie 的相关选项,默认为(default: { path: '/', httpOnly: true, secure: false, maxAge: null }) // genid: 产生一个新的 session_id 时,所使用的函数, 默认使用 uid2 这个 npm 包。 // rolling: 每个请求都重新设置一个 cookie,默认为 false。 // resave: 即使 session 没有被修改,也保存 session 值,默认为 true。 }));
範例:
app.use(session({ secret: 'keyboard cat', cookie: { maxAge: 60000 }})) app.use(function(req, res, next) { var sess = req.session if (sess.views) { sess.views++ res.setHeader('Content-Type', 'text/html') res.write('<p>views: ' + sess.views + '</p>') res.write('<p>expires in: ' + (sess.cookie.maxAge / 1000) + 's</p>') res.end() } else { sess.views = 1 res.end('welcome to the session demo. refresh!') } })
登陸資訊這種直接存cookie吧,每次請求你的node都可以拿到cookie,然後寫一個中間件做cookie的校驗就好了
req.session.user = user ,路由裡判斷是否過期,use(flash())作為訊息傳遞
範例:
登陸資訊這種直接存cookie吧,每次請求你的node都可以拿到cookie,然後寫一個中間件做cookie的校驗就好了
req.session.user = user ,路由裡判斷是否過期,use(flash())作為訊息傳遞