Я занимаюсь разработкой приложения Flutter и использую OAuth2 для аутентификации. Приложение не может быть использовано, если вы не вошли в систему, оно просто показывает экран входа и вынуждает вас войти в систему.
При входе в систему я получаю от сервера аутентификации следующую информацию:
- токен доступа
- срок действия токена доступа
- токен обновления
- обновить время жизни токена
Когда срок действия маркера доступа истекает, я хочу получить новый, отправив токен обновления на сервер аутентификации.
Как мне реализовать механизм обновления токенов ? Я хочу обновлять токен доступа каждый раз до истечения срока его действия, даже если пользователь не использует приложение (оно закрыто). Если бы пользователю приходилось входить в систему каждый раз, когда он открывает приложение, это было бы очень плохо для пользователя. Чтобы избежать этого, я хочу обновить токен в фоновом режиме.
Как мне добиться этого, чтобы работать на Android и iOS? Желательно без написания собственного кода для каждой из платформ.