Я создал свое Vue СПА приложение. Внешний и внутренний интерфейсы полностью отделены Поэтому я не использую аутентификацию сеанса laravel, поэтому я хочу выполнить полную аутентификацию только с vue и отправить необходимые данные в бэкэнд.
Этот вопрос касается только основы c понимание того, как я должен обращаться с двумя токенами JWT. Итак, access_token и refresh_token
Теперь я уже интегрировал Laravel Passport и самые важные функции аутентификации в свой собственный контроллер. У меня есть следующие методы:
регистрация, вход в систему, выход из системы и метод refreshToken.
register () и login () возвращают токен доступа / refre sh. logout () удаляет токены доступа от пользователя, а refreshToken () берет refresh_token и дает мне новые access_token и refresh_token. Если я тестирую API с почтальоном, это работает. Мой access_token действителен в течение 30 минут, пока не истечет. Перед этим он должен быть обновлен с помощью refresh_token, или я не могу получить доступ к каким-либо защищенным маршрутам auth: api.
Теперь к основному c понимаю вопрос.
- Должен ли я сохранить access_token и refresh_token в хранилище localals? Прямо сейчас я сохраняю только access_token. Потому что я думаю, что если хакер получит access_token, он будет действителен только в течение нескольких минут. Если он также получил refresh_token, он может обновить access_token, сколько ему нужно. Так как сохранить refresh_token ?
- Как долго должен быть действителен refresh_token , если access_token равен 30 минутам? Я сделал 60 минут. Но я действительно не знаю, имеет ли это смысл вообще
- Когда мне следует использовать refresh_token? Если access_token действителен, я могу получить доступ ко всем защищенным API-интерфейсам. Так что мне сейчас не нужен refresh_token. Так что, если access_token больше не действителен? Тогда я получаю ошибку в веб-интерфейсе. Должен ли я сделать второй вызов API напрямую, который попытается обновить sh access_token? Если это сработает, мне придется сделать исходный запрос API снова. Я думаю, что это не очень хорошее решение. Так может быть промежуточное ПО, которое обновляет access_token при каждом запросе защищенного API? Но тогда мне придется перезаписывать старый access_token новым при каждом запросе. Я думаю, что это не так, как должно быть?