Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 在Express.js中使用Sessions大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要帮助理解Web应用程序会话的概念。我使用Express 3.0运行一个Node.js服务器。

我的目标是:

>为每个登录用户创建一个会话
>存储此会话,并用于验证用户是否已登录(防止两个设备同时使用同一用户),并限制对特定页面的访问(通过将会话ID与其他数据相匹配)

我将使用MemoryStore来保存会话(看起来最简单)。如果上述目标有意义,你能否提供一个如何实现他们的彻底解释?

解决方法

Express在github库中有很好的 examples。其中一个处理 authentication显示如何将用户附加到req.session对象。这是在app.post(‘/ login’)路由内完成的。

为了限制对某些页面的访问,向这些路径添加一个简单的中间件

function reStrict(req,res,next) {
  if (req.session.user) {
    next();
  } else {
    req.session.error = 'Access denied!';
    res.redirect('/login');
  }
}

app.get('/reStricted',reStrict,function(req,res){
  res.send('Wahoo! reStricted area,click to <a href="/logout">logout</a>');
});

由于Brandon已经提到你不应该在生产中使用MemoryStore。 Redis一个很好的选择。使用connect-redis访问数据库一个示例配置看起来像这样

var redisStore = require('connect-redis')(express);

// add this to your app.configure
app.use(express.session({
  secret: "kqsdjfmlksdhfhzirzeoibrzecrbzuzefcuercazeafxzeokwdfzeijfxcerig",store: new redisStore({ host: 'localhost',port: 3000,client: redis })
}));

大佬总结

以上是大佬教程为你收集整理的node.js – 在Express.js中使用Sessions全部内容,希望文章能够帮你解决node.js – 在Express.js中使用Sessions所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。