Я создаю веб-приложение, которое будет состоять из серверной части и веб-интерфейса. Я хочу ввести auth между этими двумя частями, и я намерен использовать для этого OAuth2.
Часть интерфейса будет действовать как клиент OAuth, а серверная часть будет служить поставщиком OAuth, поэтому сервер будет выдавать токен доступа и обновления.
Мой план состоит в том, чтобы, конечно, хранить токен обновления на стороне сервера и хранить токен доступа на стороне интерфейса (и отправлять токен доступа с каждым запросом в качестве параметра заголовка). Допустим, токен доступа длится 24 часа, а токен обновления - 3 месяца.
Мой вопрос: когда (и как) я должен обновить токен доступа, который хранится на стороне интерфейса? (Я спрашиваю об этом, потому что хочу обновить его до истечения срока его действия; не хочу сталкивать пользователя с потоком входа в систему, если в этом нет необходимости)
- Должен ли я возвращать новый токен доступа после каждого успешного запроса и сохранять его на стороне внешнего интерфейса (не очень хорошая идея)
- Должен ли я возвращать новый токен доступа, если срок действия существующего только истекает - возможно, необходимо проверить на стороне внешнего интерфейса, возвращается ли новый токен доступа через параметры заголовка и заменяет ли он старый.
- Должен ли я хранить токен доступа и обновления на стороне внешнего интерфейса, а если срок действия токена истек, то получить новый, используя токен обновления
- Что-то еще?
Я не уверен, что является лучшей практикой.