Tag: 快速会话

如何在多个服务器中检索NodeJS中的SessionID?

我是NodeJS的新手。 我正在开发一个REST API并使用快速会话来处理会话。 所以,要获得我正在使用的会话ID var sessionID = req.sessionID 此会话ID是从服务器端生成的。 所以,当我扩展到两个或更多的服务器,这是一个问题。 例如,如果一台服务器closures并且请求被redirect到另一台服务器(假设我有一个负载平衡器),则会生成一个新的会话ID。 那么,有没有办法从客户端检索会话ID?

快递会议中的请求不会持续

我有以下代码: var express = require('express'); var cookieParser = require('cookie-parser'); var http = require('http') var app = express(); app.use(cookieParser()); var session = require('express-session'); app.use(session({ resave: false, saveUninitialized: true, secret: 'sdlfjljrowuroweu', cookie: { secure: true } })); app.get('/test', test); function test(req, res) { var sess = req.session; console.log('before', sess); if (sess.views) { sess.views++ req.session.save(); res.setHeader('Content-Type', 'text/html') res.write('<p>views: […]

更新自定义req.session属性值似乎不够快速

我有一些Express中间件处理来自我的客户端应用程序的GET请求,以便向使用OAuth2令牌的单独的API服务器发出后续请求,我也使用express-session存储这些令牌。 在我的中间件,使传出的请求,我已经添加处理,以应付访问令牌到期的场合(API服务器发回一个403),并提出刷新令牌的请求,然后它将发出相同的原始传出请求API服务器,所以客户端不知道这一切正在进行。 然后,通过express-session会话将检索到的新令牌持久保存回会话存储express-session ,以便在随后的请求中使用。 令牌也用于设置授权载体令牌标题,您将在下面看到。 以下是我的Express代码中涉及的部分: routes.controller.js //Currently handling GET API requests from client module.exports.fetch = function(req, res) { var options = helpers.buildAPIRequestOptions(req); helpers.performOutgoingRequest(req, res, options); }; helpers.js module.exports.buildAPIRequestOptions = function(req, url) { var options = {}; options.method = req.method; options.uri = 'http://someurl.com' + req.path; options.qs = req.query; options.headers = { 'Authorization': 'Bearer ' + […]

在快速会话中使用saveUninitialized并重新保存

我是MEAN栈中的新手。 我阅读快速会话github文档,但有一些选项,我无法清除。 该选项是saveUninitialized并resave 。 任何人都可以请示例解释什么是使用saveUninitialized和resave的saveUninitialized和什么会影响,如果我们更改该选项中的布尔值。 句法:- app.use(session({ resave: false, saveUninitialized: true, }))

节点快递,注销后如何清除cookie

基本上我从a.example.comredirect到www.example.com,我希望能够删除www.example.com上的cookie(因为cookie是以.example.com作为cookie域创build的),但是以下代码不起作用。 我知道这个问题似乎是重复的问题,我尝试了类似的问题的一切,但它不工作。 看到代码后, 我已经尝试过 。 使用快速3.0.3和节点0.10.32。 快速会话中间件 … var cookiedata = { domain : '.example.com', originalMaxAge : null, httpOnly : false }; app.use(express.session({ store : …, secret : …, key : 'express.sid', cookie : cookiedata })); … 注销function function logout(req, res){ … req.session.destroy(function(){ req.session = null; res.clearCookie('express.sid', { path: '/' }); res.redirect('https://www.example.com'); }); } 我已经尝试过类似的问题 […]

NodeJS redis连接会话标识在应该保持不变时被重新生成

我试图在NodeJS中使用Redis的标准会话持久性: var express = require('express'); var RedisStore = require('connect-redis')(express); var app = module.exports = express.createServer(); // Configuration app.configure(function(){ app.use(express.bodyParser()); app.use(express.cookieParser()); app.use(express.session({ secret: "keyboard cat", store: new RedisStore, key: 'sid' })); }); app.get('/', function (req, res) { if (req.session.isValid) { console.log("There is an existing session."); } else { req.session.isValid = true; console.log("New session."); console.log('Old session ID: […]

使用Redis Cloud和Heroku正确configuration节点会话存储

目前还不清楚使用Redis Cloud和Heroku的正确configuration参数是什么,并且在线找不到function实例。 这是我现在的代码: const express = require('express') const session = require('express-session') const RedisStore = require('connect-redis')(session); … const server = express() server.use(bodyParser.json()) server.use(bodyParser.urlencoded({ extended: false })) server.use(cookieParser()) server.use(session({ secret: token_secret, // create new redis store. store: new RedisStore({ url: 'redis://rediscloud:…@…redislabs.com:11111'}), resave: true, saveUninitialized: true })); 如果Redis Cloud和Heroku作为会话存储(使用快速会话),是否应该将resave和saveUnitialized设置为true或false? 此外,cookieParser会影响会话,需要在那里? 或者是单独parsing来自客户端的cookie,而与Redis的服务器端会话存储无关? 另外,如果cookieparsing器有一个秘密传递给函数? 最后,bodyParser应该在server.use(session)之前还是之后,并且应该将urlencoded extended设置为true或false?

在CORS呼叫之后,Express Session不会持久

TL; DR: 在Express,Express-Session和Express-Cors之间的骨干应用程序和Node.js服务器之间执行跨多个API的持久会话不能成功。 看起来每次通话之后会话都会重新初始化/丢失。 长版本: 我有一个运行在localhost:3000上的客户端Backbone / React / Flux应用程序,在运行在localhost:4242上的Node.js服务器上执行以下调用: Http调用 POST http:// localhost:4242 / api / session RESPONSE HEADERS Content-Type application/json; charset=utf-8 Set-Cookie connect.sid=s%3AFeNYY5GQGvkyRvOym7DhysprePaQr7xP.BrxOPP56k9pDpxQPvwjDFaxkEYoHU%2FAEtNUIXGltqjI; Domain=http://localhost:3000; Path=/ Vary Origin X-Powered-By Express access-control-allow-credentials true access-control-allow-orign http://localhost:3000 […] REQUEST HEADERS Accept application/json, text/javascript, */*; q=0.01 Content-Type application/json; charset=utf-8 Cookie connect.sid=s%3AjP4iADZvRnDHbJcCE8H81Zy6TIehj9BJ.eDOTw44GcHqq8i2dslBGd43tXMQ22ENl31fRizdC8iA Host localhost:4242 Origin http://localhost:3000 Referer http://localhost:3000/login […] […]