с серверным рендерингом (без нукст, чисто своя сборка сср по доке).
Бэкенд - рест апи на ноде с авторизацией через oauth2.
Клиентские токены (access и refresh) я храню в локалсторадже.
Предположим, у меня есть некий закрытый роут, скажем /cabinet.
Так вот.
Когда у меня юзер обращается к этому роуту (я имею в виде не переход на клиенте, где уже работает спа а например набор в адресной строке или переход по ссылке из закладок). На рендер-сервер приходит запрос. Т.к. токен в локалсторадже (в куках ничего нет) я никаким образом не могу из этого запроса узнать авторизован юзер или нет. Как мне лучше всего в данном случае закрыть непубличные роуты?
В случае спа без серверного рендеринга я использую для этой цели хуки роутера, но здесь, очевидно так сделать не могу, т.к. на момент запроса на рендер-сервер на сервере я не знаю авторизован ли юзер (т.к. браузер не пошшлет мне токен из локалстораджа сам).
У меня два варианта:
1) дублировать токен в куках. Соответственно, в этом случае барузере отправит в заголовках access токен и я смогу использовать хуки роутера
2) рендерить на сервере пустую верстку для закрытых роутов, а уже на клиенте, скажем в beforeMounted чекать токен из локалстораджа и редиректить ежели что не так.
Оба варианта кажутся мне так себе. Возможно, есть решение лучше но я пока не могу сообразить
Почему не отправлять токен в запросе?
Обсуждают сегодня