Size: a a a

JavaScript.Ninja

2021 June 10

IK

Illya Klymov in JavaScript.Ninja
нет, хуки это точно слой отображения
источник

IK

Illya Klymov in JavaScript.Ninja
особенно в реакте
источник

IK

Illya Klymov in JavaScript.Ninja
где хук не может существовать без компонента вовсе
источник

M

Michael in JavaScript.Ninja
ну вот у меня кастомный хук для реакт квери. Он не завязан на отображении. Чисто возвращает данные
источник

IK

Illya Klymov in JavaScript.Ninja
но жить может всё равно только в компоненте :)
источник

IK

Illya Klymov in JavaScript.Ninja
издержки реакта
источник

EI

Eduard Ilyaskin in JavaScript.Ninja
Были у кого нибудь такие кейсы с jwt

- После закрытия вкладки, по истечении 30 минут пользователь должен заново залогинится
-  Если пользователь не активен 10 минут, выйти с системы(со всех вкладок) проблема: у каждой вкладки свои таймеры, если в одной вкладки он не активный, а в другой активный его просто выкинет с системы
- Если пользователь вышел с системы, выкидывать со всех вкладок.

Какой-то прям трэшак получается, и правильно ли то что мы используем jwt?

Текущая реализация работает так: токены лежат в куки с expiredTime как раз на 30 минут для первого кейса, есть также в системе idle на 10 минут

Бывают баги что токенов уже нету а пользователь работает вообще в другой вкладке и его просто выкидывает

Нельзя ли упростить этот сложный flow.

Была идея idle засинхронизировать со всеми вкладками через localStorage
источник

IK

Illya Klymov in JavaScript.Ninja
да, напишите синхронизацию
источник

IK

Illya Klymov in JavaScript.Ninja
localStorage / BroadcastChannel
источник

AK

Anton Kolesnikov in JavaScript.Ninja
Safari и IE не поддерживает
источник

IK

Illya Klymov in JavaScript.Ninja
да, полифилить надо
источник

AD

Aleksei Dubinskii in JavaScript.Ninja
можно по сокету кидать событие на то что бы вылогинить
источник

EI

Eduard Ilyaskin in JavaScript.Ninja
у нас так сокет работает если с другово устройства разлогинить, поскольку активное устройсво может быть одно)

пока будем синхронизировать idle таймер через localstorage или BroadcastChannel

посмотрим что получится

просто мне еще не нравится что токеныв куки лежать с expiredDate, и в какой-то вкладке они могут просто сдохнуть
источник

D

Dimitrii in JavaScript.Ninja
Хуки продаются в том числе под аргументом, что хуки отличный способ вынести некую-бизнес-логику из компонентов и тестировать отдельно, проще.
источник

IK

Illya Klymov in JavaScript.Ninja
Я старый и не ведусь на продажи
источник

D

Dimitrii in JavaScript.Ninja
Значит нагло врут?!
источник

IK

Illya Klymov in JavaScript.Ninja
Я не видел таких аргументов, поэтому не могу судить
источник

D

Dimitrii in JavaScript.Ninja
Спасибо, за хороший аргумент. Очевидный и не заметный.
источник

D

Dimitrii in JavaScript.Ninja
Вспомнил. Он продается под соусом реюзабельности поведения между компонентами, и что с классами это сложно делать.
источник

D

Dimitrii in JavaScript.Ninja
Sometimes, we want to reuse some stateful logic between components. Traditionally, there were two popular solutions to this problem: higher-order components and render props. Custom Hooks let you do this, but without adding more components to your tree.
источник