护照认证后,Express重定向到错误的视图

时间:2016-12-01 01:10:24

标签: javascript angularjs node.js express passport.js

我很有时间弄清楚URL为什么会更新,但它会出错。

当用户通过护照进行身份验证时,URL会更新到我的代码(/ clients),但视图会返回主页视图。

用户通过身份验证后,我希望将它们重定向到我的角应用程序。

folder structure

  server
     --config
          -auth
          -express
          -mongoose
          -passport
          -routes
     --controllers
     --data
     --utils
     --views
         -client (ng app)
             -css
             -js
             -views
             index.jade (angular app index)
         -shared
              layout.jade
         -users
              login.jade
         index.jade (express index)

express.js

app.set('view engine', 'jade');
  app.set('views', config.rootPath + '/server/views/');

auth.js

login: function(req, res, next) {
    var auth = passport.authenticate('local', function(err, user) {
        if (err) return next(err);
        if (!user) {
            req.session.error = 'Invalid Username or Password!';
            res.redirect('/login');
        }

        req.logIn(user, function(err) {
            if (err) return next(err);
            res.redirect('/client');
            console.log();
        })
    });
        auth(req, res, next);
    },...

Routes.js

var auth = require('./auth'),
    controllers = require('../controllers');

module.exports = function(app) {
    app.get('/register', controllers.users.getRegister);
    app.post('/register', controllers.users.createUser);

    app.post('/login', auth.login);
    app.get('/logout', auth.logout);
    app.get('/login', controllers.users.getLogin);

    app.get('/', function (req, res) {
        res.render('index', {currentUser: req.user});
    });

    app.get('*', function (req, res) {
        res.render('index', {currentUser: req.user});
    });
};

如果有人能指出我正确的方向,我会非常感激。

1 个答案:

答案 0 :(得分:0)

添加路线

   app.get('/client', function (req, res) {
     res.render('client/index', {currentUser: req.session.user});
   });