Node.js 登录后如何在自定义页面上重定向?

Node.js 登录后如何在自定义页面上重定向?,node.js,express,passport.js,Node.js,Express,Passport.js,我正在使用PassportJS来处理对我的应用程序的访问,假设用户已登录,并假设以下URL: 登录 登记册 欢迎光临 需要在仪表板上重定向用户url,只有用户已登录,我怎么办 这是我的身份验证中间件: module.exports = { ensureAuthenticated: function(req, res, next){ if(req.isAuthenticated()){ return next(); }

我正在使用
PassportJS
来处理对我的应用程序的访问,假设用户已登录,并假设以下URL:

  • 登录
  • 登记册
  • 欢迎光临
需要在
仪表板上重定向用户
url,只有用户已登录,我怎么办

这是我的身份验证中间件:

module.exports = {
    ensureAuthenticated: function(req, res, next){
        if(req.isAuthenticated()){
            return next();
        }

        res.render('index/forbidden');
    }
};
例如:

  • 用户登录
  • 没有会议
  • 保持在页面上
(已经开始工作)

  • 用户登录
  • 已登录
  • 重定向到仪表板

您可以创建另一个中间件以在登录时重定向,并将其添加到不需要登录的路由中。你基本上是在做相反的事情

module.exports = {
    ensureAuthenticated: function(req, res, next){
        if(req.isAuthenticated()){
            return next();
        }
        res.render('index/forbidden');
    },
    ensureNOTAuthenticated: function(req, res, next){
        if(req.isAuthenticated()){
            return res.redirect('/dashboard')
        }
        return next();
    }
};
对于需要验证的路由:

app.get('/dashboard', ensureAuthenticated, (req,res)=>{...});
app.get('/login', ensureNOTAuthenticated, (req,res)=>{...});
对于不需要身份验证的路由:

app.get('/dashboard', ensureAuthenticated, (req,res)=>{...});
app.get('/login', ensureNOTAuthenticated, (req,res)=>{...});