【问题标题】:LoggedIn undefined in everyauthLoggedIn 在everyauth 中未定义
【发布时间】:2011-12-30 22:05:33
【问题描述】:

我的代码过去可以工作,但由于 cloud9ide 无法正常工作,几天没碰它后,它就停止工作了。我总是得到一个 req.loggedin 作为未定义的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>');

        }
    });

请求打印:

{ 会话:

 // IGNORE ALL KIND OF STUFF //

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

怎么了?一切似乎都找到了,但我仍然不确定...???

这是请求的更大摘录:

 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,

【问题讨论】:

  • 您是否收到错误消息?如果你这样做是什么?
  • 没有错误信息,只是无法看到实例化的登录。
  • 只是好奇 guiomie - 你有没有想过这个问题?我现在才开始使用everyauth,我不知道如何检查是否有人登录(比如你在做什么),因为记录的方法似乎都不起作用......
  • 我创建了一个引用 req.session.auth.facebook.user.id 的函数,这给了我用户 ID。这样,它总是工作,everyauth坏了与否。此外,console.log(req.session) 并从中提取您想要使用的任何额外信息。

标签: javascript node.js express mongoose everyauth


【解决方案1】:

使用

if(req.session.loggedIn)

改为。

会话是 req 对象的一部分。

【讨论】:

  • 这仍然是一个未定义的。 req.loggedIn 以前可以正常工作。不确定我是否更新了我的everyauth 模块,并且此功能已被弃用...
  • 我在你的问题中看到它说sessions。这似乎是非标准的,但你可以试试req.sessions.loggedIn。如果您可以在 console.log 输出中看到它,那么如果您使用正确的名称,您就可以访问它。
  • 会话实际上是具有更多属性的更大对象的一部分。所以他们必须是再次获得这个的优雅方式。
猜你喜欢
  • 2012-08-21
  • 2020-10-03
  • 2012-11-28
  • 2020-11-22
  • 1970-01-01
  • 1970-01-01
  • 2013-05-03
  • 1970-01-01
  • 2012-08-09
相关资源
最近更新 更多