就在昨天在Heroku上,我开始在twitter登录express时遇到这个错误。
Error: failed to find request token in session
at Strategy.<anonymous> (/app/node_modules/passport-twitter/node_modules/passport-oauth/lib/passport-oauth/strategies/oauth.js:120:54)
at Strategy.authenticate (/app/node_modules/passport-twitter/lib/passport-twitter/strategy.js:82:40)
at Passport.authenticate (/app/node_modules/passport/lib/passport/middleware/authenticate.js:153:14)
at callbacks (/app/node_modules/express/lib/router/index.js:272:11)
at param (/app/node_modules/express/lib/router/index.js:246:11)
at pass (/app/node_modules/express/lib/router/index.js:253:5)
at Router._dispatch (/app/node_modules/express/lib/router/index.js:280:4)
at Object.handle (/app/node_modules/express/lib/router/index.js:45:10)
at Context.next (/app/node_modules/express/node_modules/connect/lib/http.js:204:15)
at Context.<anonymous> (/app/node_modules/passport/lib/passport/context/http/actions.js:64:8)有什么建议吗?
发布于 2012-07-03 16:47:35
玉湖我解决了。问题是,我的网站有时有www,有时没有,因此会话显然存在问题。
发布于 2014-05-12 21:24:22
我在使用Node.js,Express & Passport时也遇到了这个错误,尽管我的修复方法与上面描述的不同。
我从“express-session”文档中复制并粘贴了以下代码……
app.use(session({ secret: 'keyboard cat', key: 'sid', cookie: { secure: true }}))https secure:true https位指示express-使用'https',我的开发环境中没有设置。一旦我删除了它,这个错误就消失了。
发布于 2017-04-05 07:21:03
这是一个非常晚的答案,但我只是想出了另一个可能发生的原因。当制作express-session的人说MemoryStore不适合生产时,他们是认真的。
如果你正在使用集群(pm2、永远或在Heroku上运行),那么基于内存的cookie存储就会有自己的一组问题。您经常会丢失或损坏cookie(因为在服务器端有两个或更多独立的进程,不共享公共内存)。
如果要在集群中运行Node应用程序,则需要使用Redis或一些DB支持的cookie存储
https://stackoverflow.com/questions/11075629
复制相似问题