node.js/everyauth:通过授权请求维护会话信息

问题描述:

好的,所以我正在将我的头靠在墙上试图弄清楚这一点!我正尝试通过Facebook进行身份验证。node.js/everyauth:通过授权请求维护会话信息

我有一个节点(0.6.13)在amazon ec2服务器上运行。我使用everyauth进行身份验证,并且我有mongodb(mongodb native和connect-mongodb)进行持久化。这里是我如何实例mongo:

var MongoStore = require('connect-mongodb'); 
var mongo = require('mongodb'); 
var mongoServer = new mongo.Server('localhost', 27017, {auto_reconnect: true, native_parser: true}) 
var mongoStore = new MongoStore({ 
    db: new mongo.Db('test', mongoServer, {}) 
    , reapInterval: 3000 
}); 

我想通过Facebook使用everyauth进行身份验证。所以我们假设我的应用程序在端口3000上运行,位于http://ec2ip:3000/。我的Facebook应用程序设置将网站重定向回http://ec2ip:3000/

Express是建立像这样:

app.get('/', function (req, res) { 

if(!req.session.auth || !req.session.auth.loggedIn) 
{ 
    console.log("Not authorized!"); 
    res.redirect('/auth/facebook/');  
} 
else 
{ 
    console.log("Authorized!");  
    res.sendfile(__dirname + '/www/index.html'); 
}  
}); 

本地工作,我把它放在服务器上之前。会发生什么,它会正确验证与脸书,并重定向到我的网站,但req.session.auth将永远不确定,并将永久重定向。即使我知道它已被成功验证,但它只是没有传递正确的会话信息。

它与正确设置重定向请求有关,所以会话信息得到维护,但我不明白它是如何工作的。

任何意见/帮助将不胜感激。这些是我遇到的相关问题/问题,但我不知道如何将其应用于我的案例中:https://github.com/bnoguchi/everyauth/issues/189Node.js & Express session problem

+0

你设法解决了保罗? – 2012-04-13 12:14:43

检查“req.session”中的值是多少。然后直接获取您需要的对象中的值。