Tag: 会话

错误:未能在会话中为passport-twitterfind请求令牌

以下是我使用passport-twitter时得到的错误 – Error: Failed to find request token in session at Strategy.OAuthStrategy.authenticate (/MYPROJECT/node_modules/passport-twitter/node_modules/passport-oauth1/lib/strategy.js:142:54) at Strategy.authenticate (/MYPROJECT/node_modules/passport-twitter/lib/strategy.js:85:40) at attempt (/MYPROJECT/node_modules/passport/lib/middleware/authenticate.js:337:16) at Object.authenticate [as handle] (/MYPROJECT/node_modules/passport/lib/middleware/authenticate.js:338:7) at next_layer (/MYPROJECT/node_modules/express/lib/router/route.js:103:13) at Route.dispatch (/MYPROJECT/node_modules/express/lib/router/route.js:107:5) at /MYPROJECT/node_modules/express/lib/router/index.js:205:24 at Function.proto.process_params (/MYPROJECT/node_modules/express/lib/router/index.js:269:12) at next (/MYPROJECT/node_modules/express/lib/router/index.js:199:19) at next (/MYPROJECT/node_modules/express/lib/router/index.js:176:38) 以下是我执行的苏格兰Twitter注册教程, FB signup工作正常。 供参考 – 我在twitter上多次检查过configuration,对我来说一切都好(callbackURL,key,secret等) 我检查了下面的url,但没有运气。 我的开发url就像 – http://192.XXX.XXX.XX:PORT_NUMBER 以下是我的app.js app.js 以下是我的passport.js passport.js […]

ExpressJS会话与Cookie

我试图使用cookie来build立ExpressJS 4.2和cookierparsing器的用户会话,但是我发现的所有文档都是针对Expressjs 3.x或更旧版本的。 有人能指出我正确的方向吗? 文档或代码片断将不胜感激。 提前致谢! ====== 我想使用PassportJS来validation本地用户与MongoDB,一切正常,除了这条路线(确保总是重新定向到/,即使当在MongoDB中find用户/通行证 // reusable middleware function ensureAuthenticated(req,res,next) { if(req.isAuthenticated()) {return next();} res.redirect('/'); // if failed… } router.get('/panel', ensureAuthenticated,function(req, res){ res.render('panel', {obj: testArr}); }); 那是因为ensureAuthenticated找不到活动的cookie。 我的app.jsconfiguration是这样的: var express = require('express'); var path = require('path'); var favicon = require('static-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); […]

Salesforce API会话过期,如何自动重新连接

我正在使用节点模块jsforce将销售线索添加到销售线索表。 https://www.npmjs.org/package/node-salesforce这里是文档。 该网站现在是活的,但每天我不得不重新启动服务器会话过期,我收到这个消息 { [INVALID_SESSION_ID: Session expired or invalid] name: 'INVALID_SESSION_ID', errorCode: 'INVALID_SESSION_ID' } undefined 以下是设置它的代码部分: conn.sobject("Lead").create({ email : req.body.email, firstname : req.body.first_name, lastname : req.body.last_name, title : req.body.job_title, company : req.body.company, leadsource: 'Clearing Microsite', description: req.body.message }, function(err, ret) { if (err || !ret.success) { return console.error(err, ret); } console.log("Created record id : " […]

Nodejs表示可互换的会话存储

有快速切换会议商店的方法吗? 目前取决于默认configuration,我的快递应用程序使用redis或mongo来存储会话。 所以我的问题是:有没有办法使用redis将会话切换到mongo? 如果redis出现故障。 我尝试再次调用app.use(express_session({….})) ,但它的工作。 我想我必须有一些钩子,可以让我删除当前的会话存储并创build|添加新的会话存储。 不知道在哪里。

如何在NodeJS的socket.io中访问Cookie会话中间件?

我决定在我的应用程序中使用socket.io,并偶然发现了一个问题。 我使用cookie-session进行快速授权: var session = require('cookie-session'); var app = express(); // … app.use(session({ keys: ['secretkey1', 'secretkey2'] })) // … app.get('/settings', function(req, res) { res.type("html"); if (!req.session.sid) { console.log("NO SID"); req.session.sid = util.randomString(); } else { console.log("sid:" + req.session.sid); } // doing stuff with req.session.sid var jadeView = { /*…*/ }; res.status(200).send(mainJade(jadeView)); }); 现在我使用socket.io。 我想出了如何访问cookie: io.sockets.on('connection', […]

redis保存会话和其他数据

如何使用redis来存储会话和其他数据? 我得到错误“myRedis错误 – >错误:Redis连接到127.0.0.1:6379失败 – 连接ECONNREFUSED”。 没有myRedis部分,express / session / redis运行良好。 var express = require('express'); var session = require('express-session'); // pass the express to the connect redis module // allowing it to inherit from session.Store var RedisStore = require('connect-redis')(session); …. // Populates req.session app.use(session({ resave: false, // don't save session if unmodified saveUninitialized: false, // […]

处理令牌的体系结构(NodeJS)(MongoDB)

我想知道下列选项正确处理令牌的优缺点: 选项A: (在后端)api.login(用户)>>(用Passport成功)>> createOrUpdateToken >> toSaveTokenIn UserDocument >>返回用户>>(在前端)toSavetokenUserInFrontEnd(window.localStorage.setItem) 选项B: (在后端)api.login(用户)>>(用Passport成功)>> createOrUpdateToken >> toSaveTokenIn TokenDocument >>返回User&Token >>(在前端)toSavetokenUserInFrontEnd(window.localStorage.setItem) 什么是正确的select? 为什么?

首页加载多个快速会话实例

我自动给每个用户一个会话,并将会话数据存储在一个名为sessions的MongoDB集合中。 我也设置一个cookie,使我可以识别每个(返回)用户。 当用户返回时,当cookie与请求一起发送时,我能够成功find我的会话。 一切工作正常期望用户第一次访问该网站。 前端(使用Angular构build)同时向节点服务器发出六个不同的调用(每个调用都有其自己的用途)。 由于没有设置cookie,节点服务器认为有六个不同的用户调用服务器,通过该服务器创build六个会话并存储到会话集合中。 下一个呼叫(在用户操作之后)发生在倒数第二个创build的会话中,并且每个将来的呼叫都使用此会话ID进行。 当用户首次访问网站时,如何解决初次创build六个不同的会话? 可以执行一个呼叫来“启动”会话,并在响应之后执行其余部分。 但如果有另一种select,我真的很想听到它。 我正在使用Express.js 4.0,Node.js v0.10.32和MongoDB v2.6.5的自定义版本。 这是我如何创build我的会议并设置cookie: app.use(session({ saveUninitialized: true, resave: true, cookie: { secure: false, httpOnly: false }, name: 'someName', secret: 'someScret', store: new mongoStore({ db: framework.mongoose.connection.db, collection: 'sessions' }) })); 如果您需要更多信息,请告诉我。

MemoryStore express.io的替代软件

在生产模式下运行节点js时,会logging此警告: Warning: connection.session() MemoryStore is not designed for a production environment, as it will leak memory, and will not scale past a single process. 做了一个简短的研究,我发现我应该使用其他替代方法来传递会话,通过express-session-mongo或express-session-redis 。 我的问题: 这个解决scheme是为expressJs使用express.io而devise的吗? 有没有解决scheme来解决这个问题,而不使用其中的一个? 正如你所看到的,使用其中的一个将迫使我安装mongo或redis,这在我的情况下是不好的。 谢谢 !

会话身份validationtypes错误:对象#属性“types”<ServerResponse>不是函数

我正在学习node.js,并且通过Brad Dayleys书中的一些示例来expression和工作。 我从本书中复制了下面的代码,它使用encryption和快速会话实现了一些基本的会话authentication: var express = require('express'); var bodyParser = require('body-parser'); var cookieParser = require('cookie-parser'); var session = require('express-session'); var crypto = require('crypto'); //encrypt password function function hashPW(pwd) { var hash = crypto.createHash('sha256').update(pwd).digest('base64'); return hash.toString(); } var app = express(); //this is the new way to call this module app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); app.use(cookieParser('MAGICString')); […]