Как организовать аутентификацию пользователя на backend сервере?
Здравствуйте господа.
Аутентификацию на сервере можно пройти через логин+пасс или oAuth, получаем токен и работам с api.
Но приложение может работать в фоновом режиме и если токен истекает, то нужно по тихому заново авторизоваться, если хранить логин и пароль на устройстве то это возможно, но если это необходимо сделать через oAuth то без взаимодействия с пользователем никак, и я в ступоре.
Из вариантов
1) если используем oauth для входа, то выдавать два токена, с первым выполнять запросы к апи, а вторым получать новый токен.
2) выдавать бессмертный токен(использую https)
3) чую что есть вариант получше и нужно его узнать.
Подскажите как правильно мыслить при такой задаче.
Насколько я наблюдал за поведением на разных проектах, oAuth используется преимущественно для установления взаимосвязи со своей базой учетных записей. То есть, если у вас работа приложения не завязана на прямой работе с API социальной сети, то есть смысл использовать свою базу учёток и оперировать своим токеном для поддержания сессии. Вроде тривиально. Или я что-то упустил?
Токен должен "тухнуть", потому что zombie-tokens это большая дыра в безопасности в случае mitm воровства и т.п. Кроме этого ещё нужно использовать различные маркеры API для исследования поведения приложений и локализации аномаллий... но это уже совсем другуя история.