【发布时间】:2018-12-15 06:34:15
【问题描述】:
我无法使用 passport.deserializeUser() 方法在 Firebase 中搜索用户。
如果我这样写代码
passport.deserializeUser((id, done) => {
// id has the correct value, Twitter id for example when user tries to log in
database.child('people').orderByChild('id').equalTo(id).once('value', user => {
console.log(user.val()); //null
});
done(null, user.val());
});
user.val() 返回null。
如果我写
console.log(user)
user返回一个对象,无论值是否相等。
我知道 Firebase 在 Web 控制台中有自己的身份验证方法,但我想知道为什么这不起作用?数据库database.child().orderByChild() 的相同方法适用于其他地方,但不适用于passport.deserializeUser()。
我已经设置了passport.session、cookieParser 和cookieSession 并且浏览器确实从服务器接收到cookie,但是当我尝试反序列化用户时它不起作用。当我尝试使用策略进行身份验证时,它通过 passport.deserialize() 但 Firebase 部分不起作用,即使它拥有正确的 id 值。
【问题讨论】:
标签: javascript firebase firebase-realtime-database passport.js session-cookies