Laravel VueJS - Как правильно обращаться с токеном api и правильно обновлять токен sh? - PullRequest
1 голос
/ 12 февраля 2020

Я создал свое 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 понимаю вопрос.

  1. Должен ли я сохранить access_token и refresh_token в хранилище localals? Прямо сейчас я сохраняю только access_token. Потому что я думаю, что если хакер получит access_token, он будет действителен только в течение нескольких минут. Если он также получил refresh_token, он может обновить access_token, сколько ему нужно. Так как сохранить refresh_token ?
  2. Как долго должен быть действителен refresh_token , если access_token равен 30 минутам? Я сделал 60 минут. Но я действительно не знаю, имеет ли это смысл вообще
  3. Когда мне следует использовать refresh_token? Если access_token действителен, я могу получить доступ ко всем защищенным API-интерфейсам. Так что мне сейчас не нужен refresh_token. Так что, если access_token больше не действителен? Тогда я получаю ошибку в веб-интерфейсе. Должен ли я сделать второй вызов API напрямую, который попытается обновить sh access_token? Если это сработает, мне придется сделать исходный запрос API снова. Я думаю, что это не очень хорошее решение. Так может быть промежуточное ПО, которое обновляет access_token при каждом запросе защищенного API? Но тогда мне придется перезаписывать старый access_token новым при каждом запросе. Я думаю, что это не так, как должно быть?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...