|
|
|
Получение данных о пользователе React
|
|||
|---|---|---|---|
|
#18+
Делаю приложение на ReactJS. Авторизацию сделал при помощи токенов (JWT). Когда пользователь входит в аккаунт, сервер отдает токены и данные юзера. Токены я сохраняю в localstorge-е. Но вот у меня возник вопрос. Сразу после авторизации данные пользователя есть. НО вот есть закрыть вкладку и открыть через какое-то время? данных о пользователе не будет, но будут токены. И вот сам вопрос. На каком этапе мне подгрузить данные пользователя, при этом проверив авторизован ли он (валидны ли токены). Я пишу без redux-а. Создал UserStore как-то так: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. Хотел сделать глобальный объект на всё приложение. (Если говнокод то пишите. буду учиться). И вот на каком этапе мне подгружать данные? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2019, 20:16 |
|
||
|
Получение данных о пользователе React
|
|||
|---|---|---|---|
|
#18+
Tsyklop, Ты хочешь учить React без примеров React? Бери в сети пример и делай. Сервер на любой запрос от тебя проверит токен и отфутболит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2019, 20:42 |
|
||
|
Получение данных о пользователе React
|
|||
|---|---|---|---|
|
#18+
Tsyklop, данных о пользователе не будет, но будут токены. ну вот я вижу по коду что токены Вы сохраняете в localstorage А UserData нет..? Код: javascript 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2019, 20:55 |
|
||
|
Получение данных о пользователе React
|
|||
|---|---|---|---|
|
#18+
irbis_al, ну как бы да. Можно зайти и что-то изменить в тех данных. Если что-то сделают в токене то их проблемы. Сервис выбросит на авторизацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2019, 21:08 |
|
||
|
Получение данных о пользователе React
|
|||
|---|---|---|---|
|
#18+
Petro123Tsyklop, Ты хочешь учить React без примеров React? Бери в сети пример и делай. Ну вот что-то не нашел я примеров. Может Вы скинете пару примеров? Petro123Сервер на любой запрос от тебя проверит токен и отфутболит. ну, отфутболит. ок. Так что мне в каждом вызове апи копипастить код для проверки не реджектнул ли сервак запрос по причине неавторизации? я вот этого не пойму. Конечно можно сделать какое-то глобальное событие, на которое будут реагировать нужные компоненты, ну или в принципе приложение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2019, 21:11 |
|
||
|
Получение данных о пользователе React
|
|||
|---|---|---|---|
|
#18+
Tsyklop, Если вы не делали React hello world, то зачем всех запутали с авторизацией? Кто с нее начинает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2019, 21:37 |
|
||
|
Получение данных о пользователе React
|
|||
|---|---|---|---|
|
#18+
Tsyklopе реджектнул ли сервак запрос по причине неавторизации? я вот этого не пойму. Конечно можно сделать какое-то глобальное событие, на которое будут реагировать нужные компоненты, ну или в принципе приложение Ну Вам нужно сделать модуль в котором Вы делаете post put get и т.д Ну типа Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. А там добавоять токен в header И везде из кода вызывать sendPostDataput (Кстати если вы без redux работаете то "за##сь" следить за состоянием) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2019, 21:45 |
|
||
|
Получение данных о пользователе React
|
|||
|---|---|---|---|
|
#18+
Petro123Tsyklop, Если вы не делали React hello world, то зачем всех запутали с авторизацией? Кто с нее начинает? забавно. Великий всезнающий диванный комментатор. Если вы так все за всех знаете кто с чего начинал и т.д. то и сидите на своем диване. Я не просил Вас так себя вести. Если же Вам впадлу привести ссылки на примеры о которых Вы так говорите то уж извините, но вы тут лишний. Мне больше Вам сказать нечего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2019, 22:36 |
|
||
|
Получение данных о пользователе React
|
|||
|---|---|---|---|
|
#18+
irbis_al, Ну я так и сделал, да. Отдельный класс, который отвечает за запросы. Хидер тоже стоит. На счет редукса. Я понимаю что там все так круто. Но меня не прикалывает из ничего делать свалку из файлов в проекте (видел и пробовал что это такое). И как-то не хочется таким страдать. Мне бы понять как бы мне бросить ивент на все приложение что надо сделать редирект на страницу авторизации, в случае если юзер оказался не авторизованным. Может подскажете? знаю вариант с прокидыванием некоего хендлера через все компоненты, но хотелось бы как-то элегантнее что ли сделать. Если такое возможно в рамках простого реакта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2019, 22:40 |
|
||
|
Получение данных о пользователе React
|
|||
|---|---|---|---|
|
#18+
Tsyklopirbis_al, Ну я так и сделал, да. Отдельный класс, который отвечает за запросы. Хидер тоже стоит. На счет редукса. Я понимаю что там все так круто. Но меня не прикалывает из ничего делать свалку из файлов в проекте (видел и пробовал что это такое). И как-то не хочется таким страдать. Мне бы понять как бы мне бросить ивент на все приложение что надо сделать редирект на страницу авторизации, в случае если юзер оказался не авторизованным. Может подскажете? знаю вариант с прокидыванием некоего хендлера через все компоненты, но хотелось бы как-то элегантнее что ли сделать. Если такое возможно в рамках простого реакта. Ну Ваш Back должен ответить что не авторизован Вернуть пустую структуру ..а лучше типа Код: javascript 1. И вот тут как раз если бы у Вас был redux ,то организовать можно было централизованно.(Ну почти) А так надо после каждого вызова проверять типа Код: javascript 1. (Или задействовать доп. библиотеки React для авторизации.) Но если найдёте более элегантный способ,то выкладывайте сюда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2019, 23:04 |
|
||
|
Получение данных о пользователе React
|
|||
|---|---|---|---|
|
#18+
TsyklopЕсли вы так все за всех знаете кто с чего начинал я сужу исключительно по данному топику. Спрашивать где тут подгружаются данные и глобальный объект на всё приложение не имеют никакого отношения к аутентификации. Не нравится? Продолжайте. Работайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2019, 23:14 |
|
||
|
Получение данных о пользователе React
|
|||
|---|---|---|---|
|
#18+
...не знаю, как в Реакте (но подозреваю, что примерно так же, как и во Vue, поскольку понятно, где курица, а где -яйцо), но и там, и там используется router, где при переходах по страницам (beforeEnter) (и соответственно, запросах) можно поставить что-то типа: Код: javascript 1. 2. 3. 4. 5. ... т.е. проверять, залогинен ли пользователь .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2019, 14:44 |
|
||
|
Получение данных о пользователе React
|
|||
|---|---|---|---|
|
#18+
carrotik, это да, но ведь это если переходить по ссылкам. А если оставаться на одной странице и при каком-то запросе, апи вернула что юзер не авторизован? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2019, 15:16 |
|
||
|
Получение данных о пользователе React
|
|||
|---|---|---|---|
|
#18+
Tsyklop, ..ну так API 401 возвращает же ..? .. вот в этом случае router.push('/login') .. но опять же, это удобнее делать через redux, я не знаю, почему вы так его не хотите, очень удобная конструкция ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2019, 15:47 |
|
||
|
Получение данных о пользователе React
|
|||
|---|---|---|---|
|
#18+
carrotik, не хочу как? через redux? или router.push? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2019, 20:24 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=39759584&tid=1443903]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
165ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 15ms |
| total: | 287ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...