我正在构建一个基于angularJS的应用程序,我在nodeJS后端运行passportjs。 身份验证有效,但错误处理并不像我希望的那样精确。例如,当我查询我的mongoDB并且出现故障时,我会执行以下操作:
节点:
response.send(406, {error: "Email already in use"});
角:
settingsService.saveUserOnServer($scope.settings).then(
function (user) {
//Success
},
function (response) {
console.log(response);
var error = response.data.error;
$cordovaToast.show(error, 'short', 'bottom');
});
这将是吐司"电子邮件已在使用"。我想在使用passportjs时具有相同的功能:
// if no user is found, return the message
if (!user)
return done(null, false, {message: 'No user found'});
这是我在角度中得到的回应:
Object {data: "Unauthorized", status: 401, headers: function, config: Object, statusText: "Unauthorized"}
如何检索“未找到用户”'信息?提前谢谢!
答案 0 :(得分:0)
使用自定义回调修复它:
app.post('/login', function (req, res, next) {
passport.authenticate('local-login', function (err, user, info) {
console.log(info);
if (err) {
return next(err);
}
if (!user) {
res.send(401, info);
}
req.logIn(user, function (err) {
if (err) {
return next(err);
}
res.send(user);
});
})(req, res, next);
});