Tag: 会话

Node.js在会话过期Express&Passport上运行function

我有一个最大的会话时间设置使用下面的代码(与Express.js&Passport.js)。 app.use(express.session({ cookie: { maxAge : 3600000 } })); 如果会话过期(我的日志文件和分析),我想运行一个函数。 一些沿着这条线: app.use(express.session.onExpiry(function(user){ console.log('User session for ' + user + ' has expired.') }); );

节点会话cookie过期

是否有可能创build一个会话cookie(一个在浏览器closures时被自动删除),并且还有一个到期的时间,让它在一段时间后过期,比如15分钟,除非用户继续使用该站点? 如果他们使用该网站,我想重置到期,所以它持续另外15分钟。 我只幸运地创build了一个会话cookie,当浏览器closures时会过期,或者作为一个持久cookie保持有效,但是使用expires或者maxAge参数。 我能想到的唯一的事情就是创build一个会话cookie,它具有存储在其中和会话中间件中的时间戳值,检查当前时间>时间戳值,然后拒绝请求并通过将其设置为空来删除cookie 。 如果当前时间<=将时间戳更新为新的date的时间戳有效地延长会话超时。 虽然我的想法可能有效,但这让我觉得有一种更正式的方式来完成我想要的。 我目前正在试验节点和expression,所以任何有针对性的洞察,将不胜感激。

如何创build基于nodejs的url不同的会话?

我们的网站有两个部分: 1. admin (content management) 2. site pipe理部分将有url“/pipe理”和网站部分有url“/”。 例如:我的网站名称是www.example.com,那么pipe理部分的url是“www.example.com/admin”,网站的url是“www.example.com”。 我想创build基于url的会话意味着来自admin部分的请求将具有不同于来自site部分的请求的会话。 我该怎么做?

Node Express无法设置发布请求的会话

我使用node express 4.0来实现一个消息代码validationfunction。 我使用会话来存储我发送的味精代码。 我设置会话中间件作为dos说: app.use(logger('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); app.use(session({secret:'ssssss'})); app.use(express.static(path.join(__dirname, 'public'))); app.use('/uploads', express.static(path.join(__dirname, 'uploads/temp'))); 但是当我使用post方法获取msg代码时,发现会话没有成功设置。 像下面的代码一样: router.post('/msgCode', function(req, res) { req.session.test = 'test'; // request send msg code api then response } 当我重新发布这个路由器时,我发现req.session.test是未定义的。 那么我在另一个路由器上试试这个: router.get('/sendMsgTest', function(req, res) { req.session.test = 'test'; res.json({ status:0 }) } 每次我请求sendMsgTest ,我都可以得到req.session.test 。 当我请求另一个get方法时,我可以成功获得req.session.test值。 那为什么我的post方法不起作用?

是否有可能将HTTP头添加到Socket.io握手?

我试图确保我的socket.io客户端和node.js端之间的通道。 主要的Web应用程序在Drupal中,所以如果node.js位于另一个主机上,我不能将cookies传递给node.js。 我想添加一些自定义头到他的Socket.io HTTP握手(如PHP会话)。 你知道这有可能吗? 使用Socket.io 0.7

谷歌铬会话过期=空不工作

根据连接文档 ,会话在浏览器closures时应该过期: 默认情况下, cookie.maxAge为null ,表示没有设置“expires”参数,因此cookie变成浏览器会话cookie。 当用户closures浏览器时,Cookie(和会话)将被删除。 我正在使用快递3 connect-mysql会话存储(尝试与连接mongo太和它一样),这是我如何设置会话数据。 req.session.userid = results[0].id; req.session.ip = req.connection.remoteAddress; req.session.useragent = req.headers['user-agent']; req.session.is_logged_in = true; 这一切工作正常,除了在谷歌铬浏览器出于某种原因(这是在OS X Lion.I有没有可能在win或linux下testing)。 任何人都有这个问题在谷歌浏览器,并知道一个方法来解决它?

Nodejs Express3使用会话来检查用户是否login

我有以下的app.js代码 app.configure(function(){ app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/views'); app.enable('jsonp callback'); app.set('view engine', 'jade'); app.set('view options', {layout : false}); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(express.cookieParser()); app.use(express.session({ secret : 'abcdefg' })); app.use(app.router); app.use(express.static(__dirname + '/public')); app.use(function(req, res, next){ res.locals.user = req.session.user; next(); }) }); 我正在努力,以便我的.jade视图上的以下代码将工作 – if(session.user) div#logoutsection.pull-right a#logout-btn.btn.btn-info.pull-right.top-bar-form-button(href='logout/') Logout p#loginprompt.pull-right.login-prompt #{session.user.username} logged In – else ul.pull-right li […]

为什么具有ObjectID(MongoDB)types的会话参数转换为string?

我写了下面的testing代码来说明我的问题: var express = require("express"), MongoStore = require("connect-mongo")(express), mongoose = require("mongoose"), config = require(process.cwd() + "/src/config"); exports.run = function() { console.info("running http server"); //create a new HTTP server var server = express(); //sessions server.use(express.cookieParser(config.sessions.secret)); server.use(express.session({ secret: config.sessions.secret, key: config.sessions.key, proxy: true, cookie: {maxAge: config.sessions.maxAge, signed: true}, store: new MongoStore({ mongoose_connection: mongoose.connection }, onStoreSetup)})); //create a […]

nodejs连接会话cookie不在某些机器上设置

我在我的nodejs应用程序上有一个最小连接会话设置: connect.cookieParser(), connect.session({ secret: 'asdfg', cookie: { maxAge: 60 * 60 * 1000 }}), 但是,当在其他机器上testing我的网站时,会话cookie根本不会被设置。 在我的Mac上,Chrome和Firefox都像正常一样设置会话cookie。 在我的虚拟Windows上,会话cookie不会在Chrome或Firefox上设置。 在一个朋友的Windows上,会话显然没有被设置,但在另一个朋友的Windows上,会话似乎正在工作。 我检查了我的虚拟Windows Chrome上的Cookie设置和标题,但似乎没有什么不同,它只是拒绝创build一个cookie … 任何想法为什么会话cookie显然会被设置在一些机器上,而不是其他的?

Express.js在使用会话时没有响应

这是我的应用程序: var express = require('express'), app = express.createServer(), RedisStore = require('connect-redis')(express); app.configure (function(){ app.use (express.logger({ format: ":method :url" })); app.use (express.bodyParser()); app.use (express.cookieParser()); app.use (express.session({ store: new RedisStore, secret: "totally random string" })); }); app.configure ('development', function () { console.log ("Development mode."); }); app.configure ('production', function () { console.log ("Production mode."); }); app.get ('/', function […]