Я пытаюсь выяснить правильный поток и использование токенов обновления в соответствии со спецификацией OAuth2, и я полностью озадачен тем, как должен работать конкретный вариант использования.
Моя основная проблема заключается в том, что если я получаю токен обновления от какого-либо поставщика OAuth (в данном случае Google), у меня есть две проблемы, которые я не знаю, как решить:
- Как безопасно сохранить токен обновления, чтобы его можно было использовать для получения новых токенов, чтобы пользователь оставался в системе?
- Как определить, кто пользователь, которому нужен токен обновления? Я не могу просто иметь конечную точку, которая использует старые токены или адреса электронной почты для выдачи обновленного токена, потому что это кажется невероятно глупым.
Я полагаю, что неправильно рассматриваю некоторые мелкие детали реализации, и я просто не хочу, чтобы мой бэкэнд-API был открыт для какой-то серьезной дыры в безопасности, если я могу предотвратить это, спросив полезных людей из StackOverflow, как это происходит на самом деле должен работать.
Я должен добавить, что единственное решение, которое кажется почти правдоподобным, - это использовать некоторый механизм обновления по времени, но это будет включать в себя доступ к токену обновления на внешнем интерфейсе, которого я пытаюсь избежать, так как это само по себе выглядит как угроза безопасности.
Я обеспокоен передовой практикой, поэтому, если вся моя реализация имеет недостатки, и я должен делать X вместо Y или Z, тогда я тоже открыт для предложений.
Спасибо за ваше время,
Ses