перенаправление на последнюю страницу пользователя было включено после входа в систему node.js и экспресс (без паспорта) - PullRequest
0 голосов
/ 10 января 2019

У меня есть кнопка входа в систему на странице сведений о продукте. Если пользователь нажимает на него, они перенаправляются на страницу входа в систему, и после входа я хочу отправить их обратно на страницу сведений о продукте.

В моей начальной точке (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;
}
...