2011-11-17 4 views
1

Мой код работал, и через несколько дней не касался его, потому что cloud9ide не работал должным образом, он прекратил работать. Я всегда получаю req.loggedin как undefined с модулем everyauth. Я делаю простой:LoggedIn undefined in everyauth

app.get('/view/:htmlpage', function(req, res){ 
     console.log(req); 
     if(req.loggedIn) { 
      res.sendfile('./views/' + req.params.htmlpage + '.html'); 
     } 
     else{ 

      res.send('You need to be authenticated with a <a href="www.facebook.com">Facebook</a>'); 

     } 
    }); 

В REQ принты:

{сессий:

// IGNORE ALL KIND OF STUFF // 

"loggedIn":true,"userId":"4ec448e67a06792a32000006"}}' }, 
hash: [Function], 
generate: [Function] }, 

Что не так? все кажется find, но я все равно получаю undefined ... ???

Вот большая выдержка из Req:

sessionStore: 
    { sessions: 
     { 'OoYpzK3P9V5EuVzsaIzcENKA.u86589nxU+3B5y/DZ/GUWmLLd4hKiVMZQlM3uXpkpdk': '{"lastAccess":1321711710418,"cookie":{"originalMaxAge":14400000,"expires":"2011-11-19T18:08:30.421Z","httpOnly":true,"path":"/"}}', 
     'ro6CtsS269MqF9DhXHIYVzfi.VVqZHKF6DcGewMbS+myRWbeev6oMmJZEqWQ6oq0Y2mE': '{"lastAccess":1321711711837,"cookie":{"originalMaxAge":14400000,"expires":"2011-11-19T18:08:31.838Z","httpOnly":true,"path":"/"}}', 
     'AjXcalemAKkn534BBNDd1ouq.rl/JpdRKMMDoIuEj2IwEe77oesx5ZghAK4fInJT44ZQ': '{"lastAccess":1321711712927,"cookie":{"originalMaxAge":14400000,"expires":"2011-11-19T18:08:33.839Z","httpOnly":true,"path":"/"},"auth":{"facebook":{"user":{"id":"x","name":"x x","first_name":"x","last_name":"x","link":"http://www.facebook.com/x","username":"x","location":{"id":"x","name":"x, Ontario"},"education":[{"school":{"id":"x","name":"x"},"year":{"id":"x9","name":"2005"},"type":"High School"},{"school":{"id":"x","name":"x"},"year":{"id":"x","name":"2010"},"concentration":[{"id":"x","name":"x"}],"type":"x"}],"gender":"male","email":"x","timezone":-5,"locale":"fr_CA","verified":true,"updated_time":"2011-11-16T13:38:18+0000"},"accessToken":"AAAD8xT5k5w8BAIbAjZBe0z20idA2qSFIxBJXyQUVqHK0yDCSjYiyZCbtahwup8lpNN8ijWwVhJy5ZAPdwsb8IQoL2EUBq8FVtREjrY3V2gkhQObdC4u"},"loggedIn":true,"userId":"4ec448e66a06792c32000006"}}' }, 
    hash: [Function], 
    generate: [Function] }, 
    sessionID: 'SwW3fTOcQYCsJ7bRPJI3DsK4.YUolspdQE6fgM4gE/o6HNQfDrX+o94aTfgd4G8Hgv1k', 
    session: 
    { lastAccess: 1321711713901, 
    cookie: 
     { path: '/', 
     httpOnly: true, 
     _expires: Sat, 19 Nov 2011 18:08:33 GMT, 
     originalMaxAge: 14400000 } }, 
    logout: [Function], 
    _route_index: 1, 
+0

У вас появляется сообщение об ошибке? Что это, если вы делаете? – EhevuTov

+0

Нет сообщения об ошибке, его просто невозможно увидеть инстанцированный loggedIn. – guiomie

+1

просто любопытная guiomie - вы когда-нибудь это понимали? Я только начинаю использовать everyauth прямо сейчас, и я не могу понять, как проверить, что кто-то вошел в систему (например, что вы делаете), поскольку ни один из документированных методов не работает ... – thisissami

ответ

3

Использование

if(req.session.loggedIn) 

вместо этого.

Сессия является частью объекта req.

+0

Это все еще тянет неопределенное. req.loggedIn раньше работал правильно. Не уверен, обновил ли я свой модуль everyauth, и эта функциональная функция устарела ... – guiomie

+0

В вашем вопросе я вижу, что он говорит '' 'сеансы'''. Это кажется нестандартным, но вы можете попробовать '' '' req.sessions.loggedIn'''. Если вы видите его на выходе console.log, вы можете получить к нему доступ, если используете правильные имена. – staackuser2

+0

сеансы фактически являются частью большего объекта с большим количеством свойств. Поэтому они должны быть изящным способом получить это снова. – guiomie