Имея приложение Cordova, которое аутентифицирует пользователя через OAuth, как мы можем убедиться, что предоставленный токен доступа и токен обновления используются только на устройстве, которое запросило токен, или, что еще лучше, в устройстве и приложении, которое запросило токен?
В настоящее время приложение будет вызывать API в конечных точках, которые я создал для генерации запроса токена, поток выглядит так:
- API называется
- Запрос генерируется с идентификатором клиента и зашифрованной полезной нагрузкой, и пользователь перенаправляется для авторизации приложения для доступа к данным
- В API, если пользователь не вошел в систему, будет предложено сделать это
- После успешной идентификации пользователя пользователю затем предоставляются запрошенные области, где пользователь может сказать «да» или «нет». Я не авторизую для каждой запрошенной области действия
- если пользователь принимает хотя бы одну область действия, токен предоставляется и возвращается в приложение
Так что мой главный вопрос в 5-м шаге
как я могу однозначно идентифицировать x устройство или x устройство и приложение?
Я исключаю отправку информации через заголовки, поскольку, если кто-то может получить доступ к телефону и получить токен, он, вероятно, также может получить идентификатор устройства и идентификатор приложения. Таким образом, идея заключается в том, что если данные отправляются через заголовки запроса, что они каким-то образом не могут быть подделаны с помощью любого другого устройства, возможно ли это?
Какие-либо варианты или у меня достаточно текущей безопасности?