好的,所以我把头撞在墙上试图弄清楚这一点!我正在尝试通过 Facebook 进行身份验证。
我有节点(0.6.13)在亚马逊 ec2 服务器上运行 express。我正在使用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
});
我正在尝试使用everyauth 通过facebook 进行身份验证。因此,假设我的应用程序在http://ec2ip:3000/端口 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');
}
});
在我把它放在服务器上之前,这是在本地工作的。将会发生的事情是它将正确地通过 facebook 进行身份验证,并重定向到我的网站,但是 req.session.auth 将始终未定义,并且将永远重定向。即使我知道它已成功通过身份验证,它只是没有传递正确的会话信息。
它与正确设置重定向请求有关,以便维护会话信息,但我不明白它是如何工作的。
任何建议/帮助将不胜感激。这些是我遇到的相关问题/问题,但我不知道如何在我的情况下应用它:https ://github.com/bnoguchi/everyauth/issues/189和Node.js & Express 会话问题