使用passportjs和nodejs连接-flash json响应

时间:2016-07-25 03:00:44

标签: angularjs json node.js passport.js connect-flash

我试图在任何地方找到解决方案并且没有运气。

我的nodejs api应用程序上的路由如下:

app.post('/login', passport.authenticate('local-login', {
    successRedirect: '/profile',
    failureRedirect: '/login',
    failureFlash: true
}));

然后,按照我的护照策略:

passport.use('local-login', new LocalStrategy({
    usernameField: 'email',
    passwordField: 'password',
    passReqToCallback: true
},
    function (req, email, password, done) {
        User.findOne({ 'local.email': email }, function (err, user) {
            if (err) {
                return done(err);
            }
            if (!user) {
                return done(null, false, req.flash('LoginMessage', 'No User Found!'));
            }
            if (user.local.password != password) {
                return done(null, false, req.flash('LoginMessage', 'Wrong Password!'));
            } else {
                return done(null, user);
            }
        })
    }
));

我需要的是在路线上以json返回方式接收消息,因此我可以使用Angularjs或其他任何东西使用外部应用程序访问它。所以输出将是这样的:

{
"message": "User Not Found!"
}

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

要将message初始化为角度变量,您可以在视图文件中执行此操作(如果您使用ejs):

ng-init="message = '<%= message %>'"

此外,你可以使用这个变量