0
我試圖實施護照facebook的戰略到我的應用程序,但我似乎遇到了一些問題。模型創建返回未定義沒有創建 - 風帆JS
我可以成功地調用Facebook並獲得迴應,但是當試圖將用戶保存到我的數據庫時,什麼都不會發生。
在我的代碼下面,我想檢查用戶是否已經存在於數據庫中,如果他們這樣做,返回他們的細節,如果他們不創建一個新的條目。
passport.use(new FacebookStrategy({
clientID: '123',
clientSecret: '123',
callbackURL: 'http://localhost:1337/auth/facebook/callback',
profileFields: ['email']
},
function(accessToken, refreshToken, profile, done) {
User.findOne({ email: profile.emails[0].value}, function(err, user){
if (err) { return done(err); }
if (!user || user == 'false') {
console.log('No user found');
console.log(profile.id);
User.create({facebookId: profile.id, email: profile.emails[0].value}, function(err, user){
return done(null, user, { message: 'Facebook user created'});
})
} else {
console.log(user);
return done(null, user, { message: 'User already registered'});
}
})
}
));
我可以註銷配置文件ID罰款,以及電子郵件,但User.create語句不運行。
我也有護照本地實施,如果我將數據發佈到我的用戶模型,它創建用戶就好了。
僅供參考,我的用戶模型的樣子:
module.exports = {
connection: 'someMongodbServer',
attributes: {
facebookId: {
type: 'integer',
unique: true
},
email: {
type: 'email',
required: true,
unique: true,
},
password: {
type: 'string',
minLength: 6,
},
toJSON: function() {
var obj = this.toObject();
delete obj.password;
return obj;
}
},
beforeCreate: function(user, cb) {
if(user.password){
bcrypt.genSalt(10, function(err, salt){
bcrypt.hash(user.password, salt, function(err, hash){
if(err) {
console.log(err);
cb(err)
} else {
user.password = hash;
cb();
}
});
});
}
}
};
有誰知道在哪裏我可以去錯了嗎?