У меня есть кнопка входа в систему на странице сведений о продукте. Если пользователь нажимает на него, они перенаправляются на страницу входа в систему, и после входа я хочу отправить их обратно на страницу сведений о продукте.
В моей начальной точке (app.js) я устанавливаю переменную сеанса для того, что я считаю реферером. (Должно быть похоже на php $ _SERVER ['REQUEST_URI')
app.use((req, res, next) => {
req.session.lastPageOn = req.get('Referrer');
next();
});
В моем скрипте входа в систему у меня есть:
if (req.session.lastPageOn) {
res.redirect(req.session.lastPageOn)
} else {
res.redirect('account/dashboard');
}
Но каждый раз, когда я вхожу в систему, меня перенаправляют на страницу входа, так как это была последняя страница, на которой я был перед входом! Таким образом, не похоже, что req.get('Referrer');
- это то, что нужно использовать, или моя реализация неверна.
ОБНОВЛЕНИЕ: Я поставил условие if, чтобы не сохранять страницу входа в сеанс, но это похоже на хак. Нет ли лучшего способа?
if (req.originalUrl !== '/login') {
req.session.lastPageOn = req.protocol + '://' + req.get('host') + req.originalUrl;
}