我试图通过PassportJS获得一些基本的Google身份验证。 网络上的信息量似乎相当有限,我不断碰到问题,所以我想在这里尝试。Google身份验证:无法将用户序列化到会话中
我使用的代码从https://github.com/mattgaidica/twitter-mongo进行了一些修改,将其用于Google OAuth(它不使用Twitter密钥,它使用passport-google,passport.authenticate('google', ...)
)。
我一直有这个错误结束了:'Error: failed to serialize user into session'
passport.serializeUser(function(user, done) {
console.log(user); //does not have the fields we created earlier, user.uid does not exist.
done(null, user.uid);
});
的My Passport策略:
passport.use(new GoogleStrategy({
returnURL: "http://localhost:3000/auth/google/callback"
},
function(identifier, profile, done) {
User.findOne({uid: profile.id}, function(err, user) {
if(user) {
done(null, user);
} else {
var user = new User();
user.provider = "google";
user.uid = identifier;
user.name = profile.displayName;
user.save(function(err) {
if(err) { throw err; }
done(null, user);
});
}
})
}
));
这个其他用户的领域是不一样的最初创建的,发生了什么事另一个用户?
我对这里发生的事情有点失落,如果有人能让我知道我在做什么错,我会非常感激。
你是如何实施护照战略的?另外,您使用的是哪个Google Passport插件? – robertklep 2013-03-27 09:44:00
执行护照策略是在上面。不太清楚你的下一个意思。我正在使用“GoogleStrategy = require('passport-google')。策略” – Jordy 2013-03-27 09:53:41
我有一些可能有用的示例代码:https://github.com/therealplato/passport-multiauth-demo – Plato 2013-03-27 13:43:22