。所有版本都是最新的。我該如何拒絕用戶使用mongoose-auth/everyauth登錄使用node.js/expressjs/mongoose/mongoose-auth/everyauth
我想在開發過程中使用數據庫表通過電子郵件地址將用戶列入白名單,但我希望auth的主要方法是Facebook。我希望mongoose-auth只在Facebook電子郵件位於alpha_whitelist中時創建帳戶。這將爲表中的地址創建帳戶,但如果用戶不在白名單中,則超時並使服務器崩潰。
findOrCreateUser: function (sess, accessTok, accessTokExtra, fbUser) {
var promise = this.Promise(),
User = this.User()();
// TODO Check user in session or request helper first
// e.g., req.user or sess.auth.userId
User.findOne({'fb.id': fbUser.id}, function (err, foundUser) {
if(foundUser)
return promise.fulfill(foundUser);
alpha_whitelist.findOne(
{email: fbUser.email},
function(err,doc) {
if(doc) {
console.log("CREATING");
User.createWithFB(fbUser, accessTok, accessTokExtra.expires, function (err, createdUser) {
console.log(err,createdUser);
if (err) return promise.fail(err);
return promise.fulfill(createdUser);
});
} else {
console.log('Denied');
//not sure what to do here... i need to break the auth chain and redirect the user back to '/'
}
});
});
return promise;
}
看來,無論我放在那裏,它都會失敗並使服務器崩潰。我顯然缺少一些東西。任何幫助,將不勝感激。
是的,你確實是對的。我曾嘗試過,但沒有意識到發生了什麼事。看起來我必須用everyauth的'moduleErrorback'方法來捕捉錯誤。這裏有一個鏈接幫助:https://github.com/bnoguchi/everyauth/issues/36感謝您的幫助。 – jhoff