节点/快速:通知用户由于未经授权的访问而被重定向

时间:2015-11-25 02:13:23

标签: node.js express passport.js

节点新手在这里

所以我使用Node(0.12.x)Express(4.x)& Passport(0.3.x)用于身份验证,如果用户在没有正确身份验证的情况下访问页面,则将执行res.redirect('/ login')(通过ensureLoggedIn('/ login'))。用户被重定向到登录页面后,我想给用户一些反馈,告诉他们他们已被重定向,即。 “由于未经授权的访问,您已被重定向,请登录”。我怎样才能做到这一点?我的代码在下面

app.get('/', require('connect-ensure-login').ensureLoggedIn('/login'), function(req, res) {
    res.sendFile(path.join(html_dir + 'form.html'), {
        user: req.user
    });
});
app.get('/login', function(req, res) {
        res.sendFile(path.join(html_dir + 'login.html'));
});
app.post('/login', urlencodedParser, function(req, res, next) {
    passport.authenticate('local', function(err, user, info) {
        if (err) {
            return res.status(500).send({
                success: false,
                message: err
            });
        }
        if (!user) {
            res.statusCode = 200;
            return res.status(200).send({
                success: false,
                message: "Incorrect username or password"
            });
        }
        req.logIn(user, function(err) {
            if (err) {
                console.log(err);
                return res.status(500).send({
                    success: false,
                    message: err
                });
            }
            console.log("verified");
            res.statusCode = 200;
            res.setHeader("Location", "/");
            return res.status(200).send({
                success: true
            });

        });
    })(req, res, next);
});

0 个答案:

没有答案