使用Express后验证什么是更安全的“重定向或渲染”?

时间:2018-04-29 11:47:54

标签: javascript node.js express bcrypt

我应该重定向还是呈现页面?验证的最佳做法是什么?

var User = require('models/user.js');
        User.authenticate(req.body.email, req.body.password)
            .then(function(error, user){
                //IF SUCCES AND NO ERROR
                res.redirect('/profile');
                //OR
                res.render('profile.pug');
            })
            .catch(error => console.log(error));

1 个答案:

答案 0 :(得分:0)

在您的路线中,您应该:

当一切正常(没有错误)时:

return res.render('view',{
    param1:param2
});

出现错误时:

req.flash('error', error.message); // If you are using flash
return res.redirect('back');      // It will redirect user back
                                 // and display some error message

如果要编写用于身份验证的中间件:

middlewareObj.isAuthenticated = function(req, res, next) {
    if (req.isAuthenticated()){
        return next();
    } else {
        return res.redirect('/signin'); // Or status code
    }
};