Email or username:

Password:

Forgot your password?
Данила Горелко

@kurator_tech@shitpost.poridge.club вопрос чисто по гошечке.

Вот есть значит роутер. Возникла необходимость при разных условиях перенаправлять не на конкретный ендпоинт, а на предыдущий.

Условно, были на странице с котиками, нажали на логин, отправили форму и вернулись на страницу с котиками уже залогиненными.
То же самое и для других страниц: были на странице с собачками, снова логин, но вернулись уже на страницу с собачками, а не котиками.

Можно было бы передавать контекст, сохраняя урлы. Но вроде бы так делать нежелательно, так как антипаттерн (с другой стороны, а не пофиг ли, антихайп, панки хой).

Можно ещё попробовать завести глобальную для модуля переменную prevUrl и менять её в рантайме в каждом запросе через defer. Можно ли? При этом в каждом запросе читать и редиректить на неё, если надо.
Условно, изначально она будет равна "/", после перехода на котиков и после отработки обработчика станет "/cats/", переходим на логин, внутри обработчика логина всё ещё "/cats/", логинимся, происходит редирект, обработчик логина отрабатывает, prevUrl становится "/login/", а мы уже снова в "/cats/"

Читай "выходит из области видимости" вместо "отрабатывает"

Надеюсь, плюс-минус понятно объяснил :)

Оба варианта какие-то не очень, блинб

4 comments
bouncepaw 🍄

@danilax86 у меня есть идея, но я подожду сначала ответа Куратора, чтобы с мысли не сбивать. Моя-то мысль никуда не денется

Куратор снова_Технический

@danilax86@friends.grishka.me я бы точно не хранил эту информацию на стороне бэкенда, потому что это стейт а бекенд должен стейт не хранить а обрабаывать.

Хранить это в БД излишне, поднимать хранилище под такое аля redis можно но тоже овверкил.

Если бы у меня макимально простой фронтент который ничего не умеет, я бы сохранял бы в куки, и после логина делал форвард на старый адресс.

Пользователь делает запрос на кошчек - бэкенд проверяет что в куках \ заголовках нет токена - перенаправляет на login - после логина возвращает хэдер \ токен и перенаправляет на адресс из куки либо начальную страницу.

@danilax86@friends.grishka.me я бы точно не хранил эту информацию на стороне бэкенда, потому что это стейт а бекенд должен стейт не хранить а обрабаывать.

Хранить это в БД излишне, поднимать хранилище под такое аля redis можно но тоже овверкил.

Если бы у меня макимально простой фронтент который ничего не умеет, я бы сохранял бы в куки, и после логина делал форвард на старый адресс.

Пользователь делает запрос на кошчек - бэкенд проверяет что в куках \ заголовках нет токена - перенаправляет на login...

Данила Горелко

Куратор, о, куки!
Сегодня тоже задумались с Баунсом о куках)
Спасибо

Go Up