Я хочу знать такие вещи, как:
структура каталогов
В настоящее время я помещаю все, что организовано в 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 (с доступом токен). У меня также есть несколько конечных точек для создания учетных записей, сброса пароля и т. Д.