Size: a a a

React — русскоговорящее сообщество

2020 October 06

А

Александр in React — русскоговорящее сообщество
MVD
Если надо сделать редирект, надо вызывать редирект. Зачем грабли через лишнюю переменную в Стейте, засорение рендера
Грабли? Про flux слыхал?
источник

M

MVD in React — русскоговорящее сообщество
Александр
Грабли? Про flux слыхал?
Да. Но не надо роутер в отображение подмешиваться
источник

А

Александр in React — русскоговорящее сообщество
MVD
Если у тебя 5 страниц для редиректа, 5 переменных будет и 5 условий?
Можно конкретный кейс, а не абстрактное условие? Я с таким никогда не сталкивался и ни в одной из статей не видел, думаю не только мне было бы интересно почитать.
источник

as

artem sdobnikov in React — русскоговорящее сообщество
Александр
Можно конкретный кейс, а не абстрактное условие? Я с таким никогда не сталкивался и ни в одной из статей не видел, думаю не только мне было бы интересно почитать.
Например такой кейс
Бекенд отдаёт в ответе 401
В таком случае сразу перенаправляю на страницу логина
Ловлю в axios и делаю history.push
Или это плохо? 😢
источник

А

Александр in React — русскоговорящее сообщество
artem sdobnikov
Например такой кейс
Бекенд отдаёт в ответе 401
В таком случае сразу перенаправляю на страницу логина
Ловлю в axios и делаю history.push
Или это плохо? 😢
Что мешает в таком случае задиспатчить из санки экшн, на который в свою очередь отреагировать редиректом/кастомным хуком/кастомным роутом?
источник

А

Александр in React — русскоговорящее сообщество
Чем меньше мутабильности, тем лучше, имхо.
источник

as

artem sdobnikov in React — русскоговорящее сообщество
Александр
Что мешает в таком случае задиспатчить из санки экшн, на который в свою очередь отреагировать редиректом/кастомным хуком/кастомным роутом?
В каждой санке делать проверку на 401?
Что если токен просто умер, в любой санке тогда упадёт и на любой странице, где есть запрос
источник

as

artem sdobnikov in React — русскоговорящее сообщество
Александр
Чем меньше мутабильности, тем лучше, имхо.
Не совсем тогда понимаю
Где мутация?
источник

А

Александр in React — русскоговорящее сообщество
И вообще, я конечно могу чего-то не знать, но ситуация, когда неавторизированный пользователь стучится к эндпоинтам, на которых нужна авторизация мне видится, как косяк фронта.
источник

А

Александр in React — русскоговорящее сообщество
artem sdobnikov
Не совсем тогда понимаю
Где мутация?
пуш в хистори.
источник

А

Александр in React — русскоговорящее сообщество
artem sdobnikov
В каждой санке делать проверку на 401?
Что если токен просто умер, в любой санке тогда упадёт и на любой странице, где есть запрос
Если токен умер, то было бы классно уведомить об этом пользователя и разлогинить его.
источник

as

artem sdobnikov in React — русскоговорящее сообщество
Александр
И вообще, я конечно могу чего-то не знать, но ситуация, когда неавторизированный пользователь стучится к эндпоинтам, на которых нужна авторизация мне видится, как косяк фронта.
Я думал над этим кейсом
При успешной авторизации токен живёт 30 дней
При инициализации апа делать сетТаймаут через время когда умрёт токен, где диспатч разлогинить?
источник

А

Александр in React — русскоговорящее сообщество
artem sdobnikov
Я думал над этим кейсом
При успешной авторизации токен живёт 30 дней
При инициализации апа делать сетТаймаут через время когда умрёт токен, где диспатч разлогинить?
В колбеке, передаваемом в таймаут, ну по крайней мере я лучше решения не нашёл, мой лид тоже.
источник

А

Александр in React — русскоговорящее сообщество
Мб оно есть
источник

А

Александр in React — русскоговорящее сообщество
Диспатчишь разлогинивалку и вывод сообщения о причине разрыва сессии
источник

as

artem sdobnikov in React — русскоговорящее сообщество
Александр
В колбеке, передаваемом в таймаут, ну по крайней мере я лучше решения не нашёл, мой лид тоже.
Да, я это и имел в виду
Просто думаю, что если юзер зашёл в апп и жизнь токена истекает через 15 минут, то если через 15 мин юзер попробуюет перейти на какую-то другую страницу, где есть запрос, запрос отдаст 401 и перенаправит на логин
Хотя вопрос тогда почему я ещё показываю состоянии авторизованного юзера, когда токен рип? 🧐
В общем я бест пректек не знаю на этот счёт, поэтому может кто подскажет как лучше
источник

А

Александр in React — русскоговорящее сообщество
artem sdobnikov
Да, я это и имел в виду
Просто думаю, что если юзер зашёл в апп и жизнь токена истекает через 15 минут, то если через 15 мин юзер попробуюет перейти на какую-то другую страницу, где есть запрос, запрос отдаст 401 и перенаправит на логин
Хотя вопрос тогда почему я ещё показываю состоянии авторизованного юзера, когда токен рип? 🧐
В общем я бест пректек не знаю на этот счёт, поэтому может кто подскажет как лучше
Лучше на фронте убить токен до того, как он умер, ну или обновить его, если там есть такая возможность, хз, в работу с токенами сильно не углубоялся.
источник

as

artem sdobnikov in React — русскоговорящее сообщество
Есть ещё кейс
У нас есть веб и айос
На мобайле я могу поменять пароль для аккаунта, в этом случае все токены умирают для всех сессий
И вот я лажу в вебе, с телефона поменял пароль, токен мой теперь не валидный, но в веб апе узнаю об этом только если сделаю запрос
Поэтому обрабатываю 401 на уровне axios, вместо проверок во всех санках 🙃
источник

А

Александр in React — русскоговорящее сообщество
artem sdobnikov
Есть ещё кейс
У нас есть веб и айос
На мобайле я могу поменять пароль для аккаунта, в этом случае все токены умирают для всех сессий
И вот я лажу в вебе, с телефона поменял пароль, токен мой теперь не валидный, но в веб апе узнаю об этом только если сделаю запрос
Поэтому обрабатываю 401 на уровне axios, вместо проверок во всех санках 🙃
Можно через предохранитель попробовать ещё реализовать, в принципе обращение к приватному эндпоинту похоже на ошибку.
источник

K

Korebryk in React — русскоговорящее сообщество
Привет. Есть кто то, кто бы смог провести мне интервью. Поспрашивать по реакту, нативному джава скрипту? Было бы круто
источник