Как провести аутентификацию с помощью JWT и Redux? - PullRequest
0 голосов
/ 11 июля 2019

Я хочу знать такие вещи, как:

  • структура каталогов В настоящее время я помещаю все, что организовано в auth (вход в систему, выход из системы, создание учетной записи и т. Д.), В «state / modules / auth» и использую их на своих компонентах / страницах, например «views / login / index.jsx».

  • проверить поток / обновить токены Я еще не решил эту проблему. Но я думаю о том, чтобы поместить всю логику в два места: в компонент, который сделает процесс независимым от того, к какой странице пользователь будет иметь доступ, а также в axios, который будет проверять вещи в случае, если пользователь проведет несколько минут на сайте. минут - время истечения токена, а корневой компонент будет визуализирован и будет выполнять свою логику только один раз.

Что это за поток JWT, о котором я говорю? В основном:

  • проверить, существуют ли токены в LocalStorage
  • проверьте, являются ли они действительными, если они действительны, но срок их действия истек, затем получите доступ к конечной точке, передав что-то вроде «refresh_token», чтобы получить новый токен доступа
  • проверить, существует ли токен, если он не существует, не разрешать пользователю доступ к личным страницам
  • проверить, есть ли токен, но как пользователь, так и кто-то другой могли изменить и доступ, и обновление

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

У меня есть блог, где я пытаюсь реализовать auth, и вы можете немного увидеть, как он работает, здесь: https://github.com/marcosroot/blog.webstation.dev-client/tree/master/src

PS: Что касается сервера, у меня есть 3 конечных точки для JWT: одна для создания (с именем пользователя / паролем), одна для обновления токена доступа (с токеном обновления) и одна для проверки токена jwt (с доступом токен). У меня также есть несколько конечных точек для создания учетных записей, сброса пароля и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...