Я думаю, это может помочь, если вы посмотрите на последние спецификации OpenID Connect , откуда берутся такие понятия, как конечная точка userinfo.OpenID connect построен поверх OAuth 2. Там довольно много, но все же, вероятно, стоит посмотреть. Эта статья блога также очень хороша (как и другие в том же блоге).
К сожалению, я не думаю, что реализация Google в настоящее время соответствует последней версии черновика спецификации, поэтомувероятно, будет движущейся целью в течение некоторого времени.Эти вещи сильно изменились за последний год.
Я согласен с вашей первой точкой зрения, что вы должны получать новый токен доступа каждый раз, когда вы аутентифицируете пользователя, а не обновлять старый.Вы не знаете, кто пользователь, пока он не вошел в систему и не предоставил вам токен доступа.Как правило, срок службы токена доступа не связан с сеансом пользователя.После публикации ваше приложение может теоретически использовать его для доступа к ресурсам независимо от присутствия пользователя.Если вы хотите продолжить доступ к ресурсу после истечения срока действия токена, вам необходимо отправить токен обновления в этот момент, чтобы получить новый токен доступа.Боюсь, я не знаю, для чего предназначена функция «автообновления».
Я считаю, что tokeninfo
от Google аналогичен конечной точке check_id
OpenID connect, но принимает любой токен доступаили идентификационный токен, а не только последний.Обратите внимание, что время истечения этих двух может отличаться.Как правило, вы можете получить более подробные пользовательские данные из конечной точки userinfo
, чем из check_id
, что обычно возвращает user_id
.
. Вам не нужно хранить id_token
,Это немного похоже на запись аутентификации пользователя сервером авторизации.Токен доступа - это то, что ваше приложение будет заинтересовано в поддержке после проверки личности пользователя.