如何在 node.js 中创建会话 [英] How to create sessions in node.js

查看:69
本文介绍了如何在 node.js 中创建会话的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在 Node.js/Mongodb 中,我想创建一个简单的会话并将其提供给另一个页面,这样我就可以知道用户是否已登录.我想知道他是否可以访问该页面,我该怎么做?如何设置会话以及如何获取值以检查是否必须重定向用户.

非常感谢!

解决方案

使用 Express session.>

还值得一看 passport,它使在 node.js 中实现身份验证变得非常容易.

快速会话示例:

var express = require('express');var session = require('express-session');var app = express();//确保在你的任何路由之前定义//使用会话.app.use(会话({秘密:'键盘猫',cookie: { maxAge: 60000 },重新保存:假,保存未初始化:假}));//作为 req.session 访问会话app.get('/login', function(req, res) {req.session.user = 1;res.end('用户1已登录,请进入/讨论页面.');});app.get('/讨论', function(req, res) {var sess = req.session;if (typeof sess.user === '未定义') {res.redirect('/登录');} 别的 {res.setHeader('Content-Type', 'text/html');res.write('<p>用户:' + sess.user + '</p>');res.write('<p>expires in: ' + (sess.cookie.maxAge/1000) + 's</p>');重发();}});

In Node.js / Mongodb I want to create an easy session and give it to another page so I can know if a user is logged in or not. I want to know if he can access the page or not, how to I do this? How do I set a session and how do I get the value to check if I have to redirect the user.

Thanks a lot!

解决方案

Use Express session.

It's also worth taking a look at passport which makes implementing authentication in node.js really easy.

Express session example:

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 中创建会话的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆