2016-12-18 13 views
0

Я вручную пишу OAuth2 Server Flow, чтобы пользователи могли войти в систему с помощью Google (и других веб-сайтов, но давайте сосредоточимся на Google).Google OAuth2 Проверка маркера доступа в потоке сервера

У меня есть основной рабочий поток:

  1. пользователь нажимает на ссылку для входа.
  2. отправляется в Google и видит экран согласия.
  3. принимает.
  4. перенаправлено обратно на мой сайт.
  5. сервер принимает соответствующую информацию и входе пользователя в систему.

До сих пор так хорошо. Теперь я хочу убедиться, что сервер запоминает пользователя в следующий раз. Для этого я храню токен вместе с другими данными пользователя на сервере.

Теперь, как проверить, сервер-сервер, если токен все еще действителен? У меня есть срок годности, поэтому я знаю, что это недействительно после этого времени, но что мне делать? Должен ли я запрашивать постоянный (офлайн) токен, если я хочу только разрешить вход в систему?

ответ

1

В результате успеха авторизации от Google вы также должны получить refresh_token. Если вы не получаете, сделайте следующее.

  1. при перенаправлении к авторизации конечной добавить дополнительный параметр access_type = автономный режим, который будет убедиться, что вы получите refresh_token
  2. Используйте маркер обновления, чтобы получить дополнительные маркеры доступа.

Теперь для проверки вы можете удалять конечную точку проверки маркера Google, если вы не поддерживаете состояние. Если вы поддерживаете состояние, вы можете подтвердить истечение срока действия токена, если токен подписан только в том случае, если он зашифрован, тогда вы должны подтвердить его с помощью Google.

Вы можете играть с различными URL-адресами Google OAuth here

более подробной информации о лексемах проверки here

+0

Да, но не ответили на мой вопрос: Должен ли я просить постоянный (оффлайн) лексема * если я только хотите разрешить вход в систему? * –

+0

Если вы этого не сделаете, каждый раз, когда вам нужно перенаправить конечного пользователя на Google для проверки подлинности, разница будет только в том случае, если сеанс существует, тогда он может не аутентифицироваться снова (не проверял его) и сразу же даст вам токен, но если вы не хотите, чтобы конечный пользователь перешел на google, тогда да, вы должны запросить офлайн-доступ. – dvsakgec

 Смежные вопросы

  • Нет связанных вопросов^_^