私はパスポート - フェイスブック戦略を自分のアプリケーションに実装しようとしていますが、いくつかの問題が発生しているようです。モデル作成が作成されずに未定義の状態に戻る - 帆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'});
}
})
}
));
User.createステートメントは実行されませんが、プロファイルIDはメールと同様にログアウトできます。
また、私はpassport-localを実装しています。ユーザーモデルにデータを投稿すると、ユーザーはうまく作成されます。参考のため
、私のユーザモデルは次のようになります。
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();
}
});
});
}
}
};
誰もが私が間違って行くこともできる場所を知っていますか?