Токен OAuth 2.0 и время жизни - PullRequest
20 голосов
/ 10 сентября 2011

Я пытаюсь понять OAuth 2.0 ( ПОТОК СЕРВЕРА ).Давайте рассмотрим простой пример API контактов Google.

В соответствии со спецификациями, я зарегистрировал свое приложение в Google и получил идентификатор клиента и секрет клиента. Также я упомянул URL обратного вызова.

Получение доступатокен требует от меня

  1. Перенаправить пользователя на определенный URL-адрес с необходимыми строками и заголовками запросов, как указано в документе OAuth на сайте Google (https://accounts.google.com/o/oauth2/auth бла-бла)

  2. После того, как пользователь вводит свои учетные данные, они отправляются обратно на URL обратного вызова, как указано в моем приложении, которое я уже зарегистрировал в Google.здесь параметр строки запроса & code = 4 / P7q7W91a-oMsCeLvIaQm6bTrgtp6 bla bla также добавляется для обратного вызова URL.Таким образом, теперь у меня есть код авторизации

  3. Теперь я отправляю запрос на https://accounts.google.com/o/oauth2/token с кодом авторизации, который я получил на предыдущем шаге, чтобы я получил токен доступа и обновил токен.

Как только я получу этот «токен доступа», я смогу получить доступ (например, связаться с API и получить контакты пользователя)

До этого момента все было в порядке.Я также понимаю, что токены доступа имеют ограниченный срок службы, и мы можем получить новый токен доступа, используя «токен обновления».

A. Как разработчик, я обязан хранить и проверять, действителен ли «токен доступа»?

B.Если мой веб-сайт является общедоступным веб-сайтом с учетной записью «Войти с помощью Google / FB / twitter», как я узнаю, что это тот же пользователь, который вернулся на сайт через 2 дня, и мне не нужно, чтобы он запрашивал логин, вместо этого пользователь долженбыть авторизованным на сайте?потому что я не хочу, чтобы он прошел процесс авторизации, так как они уже дали разрешение на мое приложение.

EG: я зашел на сайт TechCrunch, используя свой логин FB, и могу комментировать статьи.Теперь даже после 1 недели, если я посещаю TechCrunch, мне не нужно входить снова.откуда они знают, что это я, а я уже аутентифицирован?

1 Ответ

16 голосов
/ 10 сентября 2011
  1. При использовании OAuth 2.0 вы получаете токен доступа, для которого отправлено время истечения.Либо вы можете отслеживать, когда он истекает, либо вы можете просто продолжать использовать его, пока не получите ошибку INVALID_TOKEN.Затем вам нужно будет вызвать службу обновления токенов, чтобы получить новый токен доступа.Ваш токен обновления действителен до тех пор, пока не будет отменен.

  2. Это OpenID, а не OAuth.Процесс аналогичен, но предназначен для входа пользователя в ваш сервис.OAuth предназначен для извлечения данных пользователя из другой учетной записи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...