登录后,NodeJS护照身份验证失败

时间:2016-02-25 19:29:32

标签: node.js passport-local

我遇到了 passport-local-mongoose 模块的问题。我有一个经典的身份验证例程,其中包含登录和注册页面,以及成功输入凭据后的主页重定向。 基本上,它发生在这两个函数之间:

router.post('/login', passport.authenticate('local', {
    successRedirect: '/home',
    failureRedirect: '/login'
}));

// some code

router.get('/:pagename', function(req, res, next) {
    passport.authenticate('local', function(err, user, info) {
        if (err) { return next(err); }
        if (!user) { return res.redirect('/login'); }
        req.logIn(user, function(err) {
            if (err) { return next(err); }
            var pageName = req.params.pagename;
            var data = pageFiller[pageName].getInitialState();

            res.render(pageName, data);
        });
    })(req, res, next)
});

我在我的浏览器控制台中看到了以下重定向之后我自己

  1. / somepage,未经过身份验证=>重定向到登录页面
  2. / login,成功输入凭证=>重定向到主页
  3. / home,即时重定向到登录页面
  4. /登录。
  5. 我已经做过一些测试:

    • 在2步回调功能中,我打印了用户,以确保其存在。没关系。
    • 我尝试通过在浏览器中输入网址直接访问/ home。

    先谢谢你。

    登录> / home> /登录。

1 个答案:

答案 0 :(得分:0)

好的,我的坏......我对此非常陌生。

我错误地通过我骑行的简单例子导入,并且在每个其他路线中使用身份验证作为验证Here(保护路线部分)是一种易于理解的实施方式。