如何在多个服务器中检索NodeJS中的SessionID?
我是NodeJS的新手。 我正在开发一个REST API并使用快速会话来处理会话。 所以,要获得我正在使用的会话ID
var sessionID = req.sessionID
此会话ID是从服务器端生成的。 所以,当我扩展到两个或更多的服务器,这是一个问题。 例如,如果一台服务器closures并且请求被redirect到另一台服务器(假设我有一个负载平衡器),则会生成一个新的会话ID。 那么,有没有办法从客户端检索会话ID?
好问题! 会话pipe理对于启动和运行来说可能是一个挑战 – 特别是在节点上运行任何types的复杂会话pipe理时,都需要大量不同的包,每个包都有自己的一组文档。 下面是一个如何使用MongoDB设置会话pipe理的例子:
'use strict'; var express = require('express'), session = require('express-session'), cookieParser = require('cookie-parser'), mongoStore = require('connect-mongo')(session), mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/someDB'); var app = express(); var secret = 'shhh'; app.use(session({ resave: true, saveUninitialized: true, secret: secret, store: new mongoStore({ mongooseConnection: mongoose.connection, collection: 'sessions' // default }) })); // ROUTES, ETC. var port = 3000; app.listen(port, function() { console.log('listening on port ' + port + '.') });
通过此configuration,您可以访问req.sessionID
但是现在,如果用户的会话cookie尚未过期,则应该保留在应用服务器上。
我希望这个作品!
- 你可以在会话中存储循环对象吗?
- 会议信息不会粘在身边。 Node.js,Express,Passport和Ajax
- 在Node.js Express / Connect中,有没有办法将会话设置为无穷大?
- ExpressJS会话与Cookie
- Node Express无法设置发布请求的会话
- 会话pipe理,Node + Express和Mongoose模式对象
- Express-session和express-socket.io-session在angular2 / typecript环境中不起作用
- nodejs sessionStore与cloudant app.use不一致的执行
- req.session.passport为空,反序列化用户未调用 – ExpressJS,护照