讓我知道如果我理解得好,但是你想要做的是將用戶重定向到登錄前的任何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