node.js - Passport.js 如何处理 session ?

标签 node.js session express passport.js

我无法理解网络应用程序 session 的概念。我正在使用 Express 3.0 运行 Node.js 服务器。

要求:

  • 为每个登录的用户创建一个 session

  • 存储此 session 并将其用于验证用户是否已登录(防止两台设备同时使用同一用户)

  • 限制对某些页面的访问(通过将 session ID 与其他一些数据匹配)

Passport 存储 session 在哪里?

最佳答案

它将用户 session (使用 express 或 connect)存储在 req.user 中。

请记住,这与 express session 中间件不同,后者可以在 req.session 中存储您想要的任何内容。

要使用 passport 保持用户 session ,请使用 passport 的中间件:

app.use(express.session({ secret: 'keyboard cat' }));
app.use(passport.initialize());

然后像这样访问用户:

function someRoute(req, res, next) {
  // req.user = the user of this session
}

关于node.js - Passport.js 如何处理 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14245519/

相关文章:

node.js - webstorm 8,如何摆脱警告信息

php - 使用 AngularJS 和 PHP 创建跨子域 cookie/session

debugging - 如何调试导致 100% cpu 使用的 node.js?

node.js - 如何使用node.js和express在前端打印console.log

node.js - Nodejs - HTTP - 带可选参数

node.js - 使用 Mongoose 中的 promise 进行 Passport 身份验证

node.js - 如何从 Nodejs 运行 Linux/Ubuntu 命令(不是可执行文件)

Node.js 分号使用

java - 访问根网站时 session 过期

node.js - 部署到 heroku 和 netlify 后,express session 不会持续存在