2012-03-18 153 views
0

好的,所以我正在將我的頭靠在牆上試圖弄清楚這一點!我正嘗試通過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

回答

0

檢查「req.session」中的值是多少。然後直接獲取您需要的對象中的值。