OAuth 2.0 v30 определяет expires_in
, чтобы указать время клиента перед тем, как токен истечет. Это хорошо работает, когда у вас есть единая продолжительность для всех областей, запрошенных клиентом. Когда есть более одного типа областей: например, офлайн - онлайн (или короткая жизнь/длительная жизнь, если хотите), какой срок действия должен вернуть провайдер OAuth?expirers_in и несколько типов областей
ответ
Пользователь дает клиенту разрешение на доступ к ресурсам в определенных областях от его имени. Это разрешение в основном предоставляется неограниченное время для всех областей (поскольку он не влияет на то, как он обрабатывается провайдером), по крайней мере до тех пор, пока пользователь вручную не аннулирует разрешение на стороне поставщика. Если он отменяет только часть областей, то в настоящее время выданный access_token
недопустим, и клиент должен запросить новый (который имеет ограниченный объем), используя refresh_token
.
Причина для истекающих токенов заключается в том, что когда они украдены, злоумышленник имеет доступ в течение ограниченного времени. Таким образом, время, которое вы устанавливаете как провайдер, должно зависеть от того, насколько вы доверяете клиенту, если он может хранить токены в секрете, а не в облавах.
Либо я написал это неправильно, либо вы получили его так, как я этого не хотел. Как написано, представьте, что у вас нет выбора между тем, какой клиент запрашивает учетные данные (это сторонняя сторона получает доступ к защищенному ресурсу от имени пользователя). Поэтому вопрос несколько более технический: и состоит из объяснения или предложения о том, чтобы вдумчиво выбрать длительность возврата: long/short/some mix. –
Извините, тогда я все еще не понимаю. Мое понимание вашего вопроса таково: у вас разные области действия и в зависимости от того, какие запросы запрашивает клиент (сторонняя сторона), вы хотите вернуть разные значения 'expires_in'. Поэтому я попытался объяснить вам, почему у IMHO нет причин делать 'expires_in' зависимыми от области действия, так как все области предоставлены пользователем в течение неограниченного времени. Если это не то, о чем вы просили, можете ли вы попытаться описать его другими словами или более подробно? –