Tag: session

用快递和骨干pipe理会话

我想使用来自express.js的会话,我知道我们可以从req.session.id中获得一个会话ID,而且我也知道这个ID总是不同的(每次我们访问一个路由): 我看到一些人build议在全球范围内获取和保存会话,但问题是(除非我错了),如果我保存会话,当用户连接我的应用程序这种方式: app.get('/init', function(req, res) { global.session = req.session; }); 如果User_1连接我的应用程序,那么User_2连接我的应用程序和User_1仍然存在,那么global.session将包含User_2会话的值,即使对于User_1也是如此? 如果我是对的,如何正确保存会话? 我想到了一个由init路由中的req.session.id索引的数组,但是因为即使同一个用户访问相同的路由(这是否正常?),它总是不同的,这是不可能的。 您发现pipe理会话的最佳方式是什么? 谢谢 !

Socket.io sessionStore,store.get方法不存在

我想用Socket.io和passport.js来使用会话存储 var session = require('express-session'); var cookieParser = require('cookie-parser'); var MongoStore = require('connect-mongo')(session); var sessionStore = session({ store: new MongoStore({url: 'mongodb://localhost/RULE'}), key: 'express.sid', secret: 'Heisenberg' }); // Socket.io auth io.set('authorization', passportSocketIo.authorize({ cookieParser: cookieParser, key: 'express.sid', secret: 'Heisenberg', store: sessionStore, success: onAuthorizeSuccess, fail: onAuthorizeFail, })); 我得到这个错误: TypeError: auth.store.get is not a function 所以我想这是connect-mongo商店实例的问题,但我不怎么debugging它或者是什么问题。

的NodeJS。 我应该使用什么库来存储在MongoDB中的会话

我发现在MongoDB中有三个会话存储库: connect-mongodb , connect-mongo , connect-session-mongo 哪个最好? 编辑:所以,如果我将使用连接mongodb我必须做两个数据库连接。 首先为会议商店: var connect = require('connect') , Db = require('mongodb').Db , Server = require('mongodb').Server , server_config = new Server('localhost', 27017, {auto_reconnect: true, native_parser: true}) , db = new Db('test', server_config, {}) , mongoStore = require('connect-mongodb'); connect.createServer( connect.bodyParser(), connect.cookieParser(), connect.session({ cookie: {maxAge: 60000 * 20} // 20 minutes , […]

我应该如何在node.js上实现会话存储

我正在创buildjosi ,一个node.js的web框架。 我想添加会话存储。 什么是实施这个最好的方法? 我假设它可能必须基于cookie,但我有兴趣知道是否有其他框架有不同的方法。

如何覆盖node.js express会话的会话ID(使用护照)

我正在实施一个调用我们内部authentication服务的护照策略。 内部auth服务生成会话ID,所以我需要确保连接会话使用该ID而不是默认生成的ID。 有没有办法做到这一点? 是否有可能提供我自己的钩子函数来连接产生会话ID? 我无法想象它像设置session.id或类似的东西那么简单,因为我无法控制连接实际创build会话的时间或方式。 有没有人解决了这个问题?

并发请求到node.js,connect-mongo,会话被覆盖

在当前的一个项目(一种商店系统)中,我使用了expressJS和connect-mongo作为会话存储的node.js。 在客户端,我在启动时使用单个请求来创build一个新的会话,然后将多个并行请求发送到node.js服务器。 由于这些并行请求会改变会话,所以这些改变似乎会相互覆盖,当然这些改变会改变会话的不同对象。 示例(全部3个请求同时开始): 请求A将一些产品推送到数组req.session.productHist['abc'] 请求B将产品推送到req.session.productHist['def'] 请求C需要一些时间,但不会改变会话 由于请求C在请求A和B之后完成,但是在完成之前开始,所以似乎用请求C开始时所保持的值覆盖session.productHist (null)。 我怎样才能解决这个问题? 更新: 控制台输出的一些示例代码: var url = require('url'), express = require('express'), MongoStore = require('connect-mongo'); var aDay = 24*60*60*1000; var app = express.createServer(); app.configure(function(){ app.use(express.cookieParser()); app.use(express.session({ secret: "secret", store: new MongoStore({ db: 'lmsCache' }), maxAge: aDay }) ); app.use(express.methodOverride()); app.use(express.bodyParser()); app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); app.use(app.router); app.use(express.logger()); […]

当试图使用require('connect')。utils.parseCookie和nodejs时,找不到模块'connect'

我是相对较新的nodejs等无论如何,我有一个程序,我正在尝试编写使用会话/身份validation系统基于这一个在这里: http : //iamtherockstar.com/blog/2012/02/14/nodejs-和-socketio-authentication-all-way-down /这是基于这一个严重依据我认为(除了更新的更新版本) http://www.danielbaulig.de/socket-ioexpress/ (它利用Node.js,Express.js,Redis和Sockets.io)无论如何,当我试图运行我的程序,我得到这个错误: 错误:在Module.require(module.js:354:17)上的Function._load(module.js:279:25)处的Function._resolveFilename(module.js:332:11)处找不到模块“connect”在对象上的module.js:370:17)。 (module.js:459:10)在Module._compile(module.js:441:26)上的(/home/jez/webdir/app1/app.js:62:19)在module.0(module.js:479:10)处的Function._load(module.js:308:12)处的module.js:348:31) 这条代码对应的是: var parseCookie = require('connect').utils.parseCookie; 现在在两个教程中,他们在调用parseCookie()方法之前使用这一行,但是他们都没有提到需要“连接”模块,只有build立了appon连接的快速模块我相信。 我的程序和express一起工作得很好,在上面的教程中进行调整之前会运行正常。 我感觉它可能是node.js / express / socket.io的最近更新,但是这个教程只是在几天前写的?,任何帮助,将不胜感激!

NodeJS + Express + Mongo Session存储

我目前正在尝试在MongoDb中存储会话。 我尝试了express-session-mongo和connect-mongodb,当我尝试加载login页面时,它们都给了我相同的“500内部服务器错误”。 这让我想,也许在某处与mongoose有冲突。 无论如何,这是我的设置: app.js: var MongoStore = require('connect-mongodb'); var MongoDb = require('mongodb').Db; var Server = require('mongodb').Server; var db = new MongoDb('myDb', new Server('localhost', 27017, {auto_reconnect: true, native_parser: false})); app.configure(function() { app.use(express.logger({format: 'dev'})); app.set('views', __dirname + '/../views'); app.set('view engine', 'jade'); app.set('view options', { layout: false }); app.use(express.bodyParser()); app.use(express.cookieParser()); app.use(mongooseAuth.middleware()); app.use(require('./mysite').middleware()); app.use(express.methodOverride()); }); app.configure('production', function(){ var […]

使用非连接默认会话存储的优点是什么?

对于快速应用程序,我已经看到有一个connect-mongodb和connect-redis中间件用于存储会话,但我不明白为什么这是必要的 – 默认的内存会话存储有什么问题? 是否需要跨多台机器同步会话的大规模应用程序? 另外,任何人都可以提供最快的会议商店的任何基准/技巧? 我的猜测是Redis由于其更简单的键/值存储。

Socket.io和会话数据

这是一个适当的方式来存储我的临时应用程序数据? socket.on('connection', function(client){ client.myappsdata = { a: true, b: false } }