Size: a a a

JavaScript.Ninja

2020 February 06

IK

Illya Klymov in JavaScript.Ninja
Anton Grishin
Коллеги, подскажите что почитать. На проекте роутинг на реакте, авторизация через токен. Получается если в localstorage положить любое значение с ключом token то откроется любая страница, без данных, так как бек не пропускает.

Вопрос, как сделать, чтобы не открылась любая страница? Как валидировать токен на фронте?
никак
источник

IK

Illya Klymov in JavaScript.Ninja
вы не можете провалидировать токен не имея закрытого ключа
источник

IK

Illya Klymov in JavaScript.Ninja
но вы же должны получив ошибку "неавторизован" от бека отправить пользователя на авторизацию
источник

AG

Anton Grishin in JavaScript.Ninja
Да, так и делаю, но прелоадера нет, соответственно видно страницу.

Наверное стоит прелоадер добавить
источник

VK

Vladimir Klimov in JavaScript.Ninja
Anton Grishin
Да, так и делаю, но прелоадера нет, соответственно видно страницу.

Наверное стоит прелоадер добавить
Страницу можно даже не рендерить, если пользователь не авторизован
источник

D

Dmitriy in JavaScript.Ninja
топовый ux
источник

ДС

Дмитрий Скрыльников in JavaScript.Ninja
Anton Grishin
Да, так и делаю, но прелоадера нет, соответственно видно страницу.

Наверное стоит прелоадер добавить
Можно перед открытием приложения проверять токен на беке
источник

AG

Anton Grishin in JavaScript.Ninja
Иногда это долго и хочется отзывчивый интерфейс. Но так и сделаю. Спасибо.
источник

VK

Vladimir Klimov in JavaScript.Ninja
Dmitriy
топовый ux
А вы будете показывать закрытую страницу без пользователя?
источник

VK

Vladimir Klimov in JavaScript.Ninja
Vladimir Klimov
Страницу можно даже не рендерить, если пользователь не авторизован
Тут я не прав в контексте вопроса, я говорил немного о другом, не так понял, прошу прощения
источник

AG

Anton Grishin in JavaScript.Ninja
Если на странице нет запроса на бек, то не будет ошибки авторизации. Получается при открытии любого роута проверять авторизацию?
источник

VK

Vladimir Klimov in JavaScript.Ninja
Anton Grishin
Если на странице нет запроса на бек, то не будет ошибки авторизации. Получается при открытии любого роута проверять авторизацию?
Ну, у вас эранится аутентифицированный пользователь же в состоянии?
Его и проверяйте
источник

AG

Anton Grishin in JavaScript.Ninja
Вы упустили, я могу в ls сделать ключ token вот и вся проверка. Валидировать token на фронте возможности нет
источник

A

Aleksandr in JavaScript.Ninja
Всем привет. Подскажите как в ЖС-е правильно написать следующее: errors[0].source может возвращать значение, а может errors быть и пустым []
источник

VK

Vladimir Klimov in JavaScript.Ninja
Anton Grishin
Вы упустили, я могу в ls сделать ключ token вот и вся проверка. Валидировать token на фронте возможности нет
Так и что, а при запуске приложения получить пользователя с этим токеном невозможно, и все
источник

JG

John Galt in JavaScript.Ninja
Anton Grishin
Если на странице нет запроса на бек, то не будет ошибки авторизации. Получается при открытии любого роута проверять авторизацию?
в роутере Ангуляра есть возможность настроить перехватчик на любой переход, который в т.ч. может постучаться на бэк и узнать - жива ли авторизация.
если это есть в Ангуляре - то почему бы не сделать так же в реакте
источник

ДД

Дмитрий Дивин in JavaScript.Ninja
errors[0] && errors[0].source
источник

ДД

Дмитрий Дивин in JavaScript.Ninja
Или бабель плагин с optional-chaining
источник

AG

Anton Grishin in JavaScript.Ninja
John Galt
в роутере Ангуляра есть возможность настроить перехватчик на любой переход, который в т.ч. может постучаться на бэк и узнать - жива ли авторизация.
если это есть в Ангуляре - то почему бы не сделать так же в реакте
Получается на смену каждого роута проверять авторизацию
источник

JG

John Galt in JavaScript.Ninja
Anton Grishin
Получается на смену каждого роута проверять авторизацию
на мой взгляд это единственный способ "сэмулировать" поведение классического веб приложения в SPA, ведь роутинг в SPA это и есть эмуляция перехода по страничкам (грубо говоря как на php)
источник