Sails控制器如何获取请求历史记录
问题描述:
我正在使用Nodejs(使用Sails & Passport框架)开发网站。我想知道Sails控制器如何获取用户的请求历史记录。 例如,用户请求'/',但控制器会将用户重定向到'/ signin'。然后用户使用res.redirect()请求'/ signin'。因此,请求历史看起来像Sails控制器如何获取请求历史记录
- '/'
- '/登入'。
现在SignInController处理这个请求,最后它想把用户重定向回'/'。所以控制器应该知道用户请求的历史。我想应该有一些框架可以记录请求历史并使用会话或其他东西存储它们。任何人都可以给我一些关于这个的提示吗?
答
让我知道如果我理解得好,但是你想要做的是将用户重定向到登录前的任何URL,对吗?
要做到这一点,您可以使用策略(针对所有请求执行的策略,只针对您想要的方法执行)。 我们在这里做的是保存最新的位置只(而不是整个历史)
在API /政策/ ensureReturnToUrl:
'use strict';
module.exports = function (req, res, next) {
req.session.returnTo = req.url;
return next();
};
配置部分看起来像在配置/ policies.js:
'*': ['passport', 'isAuthenticated', 'ensureReturnToUrl'],
AuthController: {
'*': ['passport']
}
您必须小心谨慎才能将此政策放在正确的位置。例如,你不希望在你的“/登录”方法(这是违背整点)
然后,成功登录后,你只需要阅读“returnTo”属性和重定向用户:(例如,在AuthController
)
if (req.session.returnTo) {
res.redirect(req.session.returnTo);
} else {
res.redirect('/');
}
显然,这需要适合您的使用情况,但政策肯定是你所需要的。
你的意思是“重定向”? http重定向(如301)? – mdunisch
是的。使用重定向的http重定向() – RandyTek