重定向已在 Sails 中登录的用户
Redirect already logged in users in Sails
我有一个 Sails.js 应用程序,在通过 /login
页面登录后将用户重定向到 /dashbaord
。
我想要的是自动重定向到 /dashboard
已经登录的用户并尝试访问任何页面,无论是主页还是任何其他页面。
如何在 Sails 中实现这一点?
在没有更多信息的情况下,我能想到的最简单的方法是创建一个策略,然后将该策略应用于所有相关的控制器和操作。一个可能的例子:
// 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'
}
};
感谢 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();
};
然后,按照 Bonanza 的建议,我将策略添加到 config/routes.js
中的路由:
'/': [
{ policy: 'forceDashboard' },
{ view: 'homepage' }
],
'get /login': [
{ policy: 'forceDashboard' },
{ view: 'login' }
]
我有一个 Sails.js 应用程序,在通过 /login
页面登录后将用户重定向到 /dashbaord
。
我想要的是自动重定向到 /dashboard
已经登录的用户并尝试访问任何页面,无论是主页还是任何其他页面。
如何在 Sails 中实现这一点?
在没有更多信息的情况下,我能想到的最简单的方法是创建一个策略,然后将该策略应用于所有相关的控制器和操作。一个可能的例子:
// 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'
}
};
感谢 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();
};
然后,按照 Bonanza 的建议,我将策略添加到 config/routes.js
中的路由:
'/': [
{ policy: 'forceDashboard' },
{ view: 'homepage' }
],
'get /login': [
{ policy: 'forceDashboard' },
{ view: 'login' }
]