我有一个Sails.js应用程序在通过/dashbaord
页面登录后将用户重定向到/login
。
我想要的是自动重定向到已登录的/dashboard
用户并尝试访问任何页面,无论是主页还是其他任何页面。
我如何在Sails中实现这一目标?
答案 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
从路线调用政策时undefined
为api/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