node.js / everyauth: ведение информации о сеансе с запросом аутентификации - PullRequest
0 голосов
/ 19 марта 2012

Хорошо, я бьюсь головой о стену, пытаясь понять это!Я пытаюсь пройти аутентификацию через Facebook.

У меня есть узел (0.6.13), на котором выполняется экспресс на сервере amazon ec2.Я использую EveryAuth для аутентификации, и у меня есть mongodb (родной mongodb и 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');
 }    
});

Этот работал локально, прежде чем я поместил его на сервер.Что произойдет, так это то, что он будет правильно проходить аутентификацию на Facebook и перенаправлять на мой сайт, однако req.session.auth всегда будет неопределенным и будет перенаправлять навсегда.Хотя я знаю, что он успешно аутентифицирован, он просто не передает правильную информацию о сеансе.

Это как-то связано с правильной настройкой запросов на перенаправление, чтобы информация о сеансе сохранялась, но я не понимаю, как она работает под капотом.

Любой совет / помощь будет принята с благодарностью.Это связанные вопросы / проблемы, которые у меня возникают, но я не знаю, как их применить в моем случае: https://github.com/bnoguchi/everyauth/issues/189 и Node.js & проблема экспресс-сессии

1 Ответ

0 голосов
/ 09 мая 2012

Проверьте, каково значение в "req.session".Затем перейдите непосредственно к нужному значению объекта

...