关于配色的网站推荐,大型网站建设的必须条件,如何规划设计一个网站,上海景朋建设工程有限公司网站express-session 文档 express-session 一个简单的express会话中间件 使用场景 在一个系统中#xff0c; 需要维持一个临时的与登录态无关的会话密钥 比如登录系统后#xff0c; 请求某一个接口#xff0c; 接口的行为与登录态无关#xff0c; 也就是说任何人对接口的访问… express-session 文档 express-session 一个简单的express会话中间件 使用场景 在一个系统中 需要维持一个临时的与登录态无关的会话密钥 比如登录系统后 请求某一个接口 接口的行为与登录态无关 也就是说任何人对接口的访问都是一样的服务端不关心客户端是谁 但是为了服务特定用户比如能够登录该系统的用户又必须有一个密钥来做验证请求密钥时验证用户的登录状态验证成功 则发送密钥。 用户拿到密钥后就可以和服务端通信 而通信过程不需要带上用户信息 服务端也不会关心用户信息。 使用 node const session require(express-session);
app.use(session({secret: myscret,resave: false,saveUninitialized: true,name: token})
);
//服务端设置会话密钥发送给客户端加密后的密钥
//虽然接口叫做login其实和登录没有联系
router.post(/login, (req, res, next) {req.session.token 10086;res.send(200, {msg: ok});
});
//需要会话密钥验证的接口
router.post(/request, (req, res, next) {console.log(req.session);if (req.session.token req.session.token 10086) {res.send(200, {msg: get});return;}res.send(200, {msg: error reject});
});
//服务端销毁会话密钥
router.post(/logout, (req, res, next) {req.session.destroy(() {res.send({msg: logout});});
});其实这种场景比较少 大多数的场景还是需要对用户的状态做出区分 而且关联上用户状态也是可以涵盖这种场景的 使用注意 如果前后端跨域 【注释一】 你需要注意 跨域如何设置cookie如果你读过文档 你会知道这个中间件是基于cookie实现的已经在node第十一天说过。 这是mdn的文档描述 但是你无法在本地跨域的情况下使用使用这个中间件 因为此中间件对于跨域设置cookie会忽略掉即使是 locahost 。从规范的角度来说这里应该是这个中间件的不足之处 【注释一】 这里的跨域准确来说应该是至少域名/ip存在不同而不能仅仅是端口号不同 这种会话模式显然是将凭证维护在服务端 与之对应的还有另外一种方式 也就是现在被广泛运用的token把凭证维护在客户端。详见node 第十九天