重定向已在Sails中登录用户

时间:2016-05-04 21:16:35

标签: node.js redirect express sails.js passport.js

我有一个Sails.js应用程序在通过/dashbaord页面登录后将用户重定向到/login

我想要的是自动重定向到已登录的/dashboard用户并尝试访问任何页面,无论是主页还是其他任何页面。

我如何在Sails中实现这一目标?

2 个答案:

答案 0 :(得分:1)

在没有更多信息的情况下,我能想到的最简单的方法是创建策略,然后将此策略应用于所有相关的控制器和操作。一个可能的例子:

// api/policies/forceDashboard.js
module.exports = function(req, res, next) {
  if (req.session.authenticated) {
    return res.redirect('/dashboard');
  }

  return next();
};

// config/policies.js

module.exports.policies = {
  '*': 'forceDashboard',

  'DashboardController': {
    'find': 'sessionAuth',
    '*': 'forceDashboard'
  }
};

答案 1 :(得分:1)

感谢Ron Smith和Bonanza,我实现了我想要的目标。

由于某些原因,req.session.authenticated从路线调用政策时undefinedapi/policies/forceDashboard.js,所以这是我的module.exports = function(req, res, next) { if (req.user) { return res.redirect('/dashboard'); } return next(); };

config/routes.js

然后,正如Bonanza建议的那样,我将政策添加到'/': [ { policy: 'forceDashboard' }, { view: 'homepage' } ], 'get /login': [ { policy: 'forceDashboard' }, { view: 'login' } ] 中的路线:

Reducers/index.js