0
특정 속성이 누락 된 경우 호출해야하는 인증 콜백에서 일부 조건부 리디렉션을 시도하고 수행하기 위해 ExpressJS 및 PassportJS의 Facebook 전략을 사용하고 있습니다.PassportJS 및 ExpressJS 조건부 URL 리디렉션
내 사용자 스키마 :
var UserSchema = new Schema({
id: ObjectId,
uid: String,
facebookToken: String,
username: String,
password: String,
salt: String,
firstName: String,
lastName: String,
email: String,
birthday: Date,
gender: String,
location: String,
phone: Number,
verifiedPhone: Boolean,
interests: {
culture: Boolean,
food: Boolean,
business: Boolean,
family: Boolean,
learning: Boolean,
sports: Boolean,
movies: Boolean,
music: Boolean,
events: Boolean,
nightlife: Boolean,
health: Boolean,
beauty: Boolean,
fashion: Boolean,
motoring: Boolean,
electronics: Boolean,
groceries: Boolean,
travel: Boolean,
decor: Boolean
},
weeklyNotifcation: Number,
weeklyNotificationSent: Number,
created: {type: Date, default: Date.now}
});
내 콜백 : /auth/facebook
가 호출 된 후
app.get('/auth/facebook/callback', passport.authenticate('facebook', { failureRedirect: '/login' }), function(req, res) {
User.findOne({uid: req.session.uid}, function(err, user) {
if(user.email || user.location || user.phone || user.location == undefined) {
res.redirect('/register');
} else {
res.redirect('/');
}
});
});
데이터는 몽고에 저장됩니다. 세션을 사용하여 DB를 확인하고 DB에 저장되지 않았으므로 필드를 반환하지 않으므로 정의되지 않았는지 확인합니다. 콜백이 실패하고 수신 된 데이터를 반환하지 않습니다.
도움이 될 것입니다.
이 문제를 해결할 수 있었습니까? 나는 같은 문제를 가지고있다 –