Я разрабатываю гибридное приложение с использованием Ionic 3, которое будет взаимодействовать с сервисом REST Api, которое я напишу с использованием Spring Boot.
У меня возникли сложности с настройкой правильного механизма регистрации / входа. Я хочу добиться того, чтобы пользователь регистрировался в мобильном приложении, затем входил в систему со своим именем пользователя и паролем, а затем всякий раз, когда он открывает приложение, он всегда будет входить в систему (без необходимости повторной передачи учетных данных) до тех пор, пока он не нажимает кнопку «Выйти».
Я пытался сделать так, чтобы с помощью Spring Secutiry, когда пользователь входит в систему со своими учетными данными, он получает токен JWT, который сохраняется на стороне клиента (на стороне приложения), а затем используется в заголовке для каждого запроса подсети. .
Проблема, связанная с этим решением, заключается в том, что мне нужно установить дату истечения срока действия JWT (например, 10 дней, 30 дней), а затем, когда это время пройдет, пользователю придется снова ввести свои учетные данные, чтобы получить новый токен. Я хотел бы избежать этого. Другая проблема заключается в том, что нет механизма аннулирования токенов JWT в случае такой необходимости.
Другой вариант - установить токен доступа примерно на 30 минут, а затем получить новый с токеном обновления. Это, однако, требует также идентификатора клиента и секрета клиента, которые, опять же, я не думаю, безопасны для хранения в клиентском приложении.
Какова наилучшая практика для такого случая?
Пожалуйста, помогите и спасибо:)