Я пытаюсь поддержать "гибридный" Federated Login и oAuth2 (используя логику из этого документа) для веб-сервиса, который будет:
- поддерживать Sign in using your Google account на моем сайте. То есть, из документации: Вы также можете использовать систему аутентификации Google как способ аутсорсинга аутентификации пользователей для вашего приложения. Это избавит вас от необходимости создавать, поддерживать и защищать хранилище имен пользователей и паролей.
- Доступ к Google Analytics пользователя.
Вот шаги, которые я выполнил.
- Я формирую запрос на https://accounts.google.com/o/oauth2/auth с указанием диапазонов (Google Analytics), к которым я хочу получить доступ.
- Меня перенаправляют на сайт google, где есть моя иконка и то, к каким областям я запрашиваю доступ. Я предоставляю доступ.
- Меня перенаправляют обратно на страницу обратного вызова.
- Я получаю токены (access и refresh), а также огромную строку id_token (которую я не знаю) и сохраняю всю эту информацию в своей базе данных.
- Затем я делаю вызов https://www.googleapis.com/oauth2/v1/userinfo?access_token=xxxyyyzzz, чтобы получить email и имя пользователя, и тоже сохраняю эту информацию в базе данных. Я также заметил, что он возвращает поле id, которое, насколько мне известно, никогда не меняется, и я предполагаю, что это своего рода уникальный идентификатор. Я храню и это.
Вопрос: Если я перейду в раздел Авторизованный доступ к вашему аккаунту Google в моем аккаунте Google, то там показано, что мой сайт имеет доступ к "Google Analytics". НО, там не написано Войти с помощью аккаунта Google. Это то, чего я пытаюсь достичь. Я бы подумал, что использование логики позволит Войти с помощью аккаунта Google. Что я делаю не так? И что должно быть применимо к обращению к Google, чтобы пользователи могли войти на мой сайт?
задан M Schenkel 11 December 2011 в 01:45
поделиться