node.js - 如何在 Node.js 中创建 session

标签 node.js mongodb session express session-cookies

在 Node.js/MongoDB 中,我想创建一个简单的 session 并将其提供给另一个页面,以便我可以知道用户是否已登录。我想知道他/她是否可以访问该页面。我怎样才能做到这一点?

如何设置 session 以及如何获取值来检查是否必须重定向用户?

最佳答案

使用Express.js session .

也值得一看Passport.js这使得在 Node.js 中实现身份验证变得非常容易。

Express.js session 示例:

var express = require('express');
var session = require('express-session');
var app = express();

// Make sure this is defined before any of your routes
// that make use of the session.
app.use(session({
  secret: 'keyboard cat',
  cookie: { maxAge: 60000 },
  resave: false,
  saveUninitialized: false
}));

// Access the session as req.session
app.get('/login', function(req, res) {
  req.session.user = 1;
  res.end('User 1 is logged in, please go to the /discussion page.');
});

app.get('/discussion', function(req, res) {
  var sess = req.session;
  if (typeof sess.user === 'undefined') {
     res.redirect('/login');
  } else {
    res.setHeader('Content-Type', 'text/html');
    res.write('<p>user: ' + sess.user + '</p>');
    res.write('<p>expires in: ' + (sess.cookie.maxAge / 1000) + 's</p>');
    res.end();
  }
});

关于node.js - 如何在 Node.js 中创建 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36726876/

相关文章:

node.js - 类型 'x' 上不存在 Mongoose 属性 'Document'

python - MongoClient() 成功,但 Database(MongoClient(), dbName) 返回 NoneType

java - hibernate 代码中的 session.connection() 类型未定义

ASP.NET session 意外结束

javascript - 为什么父 promise 不会捕获嵌套 promise 的拒绝?

node.js - ExpressJS 删除连接

java - 如何使用 morphia 将对象列表插入 mongodb?

python - Django、mod_python、apache 和古怪的 session

node.js - connect-mongo 每秒创建新 session

javascript - 如何从 discord.js 中的 JSON 文件中选择随机对象