Выполнение Google Federated Login/oAuth2 после начальной аутентификации

Я пытаюсь поддержать "гибридный" Federated Login и oAuth2 (используя логику из этого документа) для веб-сервиса, который будет:

  1. поддерживать Sign in using your Google account на моем сайте. То есть, из документации: Вы также можете использовать систему аутентификации Google как способ аутсорсинга аутентификации пользователей для вашего приложения. Это избавит вас от необходимости создавать, поддерживать и защищать хранилище имен пользователей и паролей.
  2. Доступ к Google Analytics пользователя.

Вот шаги, которые я выполнил.

  1. Я формирую запрос на https://accounts.google.com/o/oauth2/auth с указанием диапазонов (Google Analytics), к которым я хочу получить доступ.
  2. Меня перенаправляют на сайт google, где есть моя иконка и то, к каким областям я запрашиваю доступ. Я предоставляю доступ.
  3. Меня перенаправляют обратно на страницу обратного вызова.
  4. Я получаю токены (access и refresh), а также огромную строку id_token (которую я не знаю) и сохраняю всю эту информацию в своей базе данных.
  5. Затем я делаю вызов https://www.googleapis.com/oauth2/v1/userinfo?access_token=xxxyyyzzz, чтобы получить email и имя пользователя, и тоже сохраняю эту информацию в базе данных. Я также заметил, что он возвращает поле id, которое, насколько мне известно, никогда не меняется, и я предполагаю, что это своего рода уникальный идентификатор. Я храню и это.

Вопрос: Если я перейду в раздел Авторизованный доступ к вашему аккаунту Google в моем аккаунте Google, то там показано, что мой сайт имеет доступ к "Google Analytics". НО, там не написано Войти с помощью аккаунта Google. Это то, чего я пытаюсь достичь. Я бы подумал, что использование логики позволит Войти с помощью аккаунта Google. Что я делаю не так? И что должно быть применимо к обращению к Google, чтобы пользователи могли войти на мой сайт?

14
задан M Schenkel 11 December 2011 в 01:45
поделиться