【发布时间】:2012-05-09 09:18:40
【问题描述】:
好的,所以我正在努力解决这个问题!我正在尝试通过 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 进行身份验证。因此,假设我的应用程序在端口 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');
}
});
这个在我把它放到服务器上之前在本地工作。将会发生的事情是它将正确地通过 facebook 进行身份验证,并重定向到我的网站,但是 req.session.auth 将始终未定义,并且将永远重定向。即使我知道它已成功通过身份验证,它只是没有传递正确的会话信息。
这与正确设置重定向请求有关,以便维护会话信息,但我不明白它是如何工作的。
任何建议/帮助将不胜感激。这些是我遇到的相关问题/问题,但我不知道如何在我的情况下应用它:https://github.com/bnoguchi/everyauth/issues/189 和 Node.js & Express session problem
【问题讨论】:
-
你成功了吗?
标签: facebook node.js amazon-ec2 express everyauth