Миграция входа в Google auth2 (всплывающее окно браузера) из Google+ API - PullRequest
0 голосов
/ 21 декабря 2018

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

Мы только что получили по электронной почте сообщение о том, что мы используем API Google+ (plus.people.getOpenIdConnect метод), который скоро устареет, но мы не используем его в нашем коде.

Я могуКажется, я не понимаю, где мы используем Google+ API, чтобы я мог его заменить.

Вот наш простой код:

  prepareGoogleClient() {
    $.ajax({
      url: "//apis.google.com/js/client:platform.js",
      dataType: "script"
    }).done(() => {
      gapi.load("auth2", () => {
        let auth = gapi.auth2.init({
          client_id: ENV.googleClientId,
          scope:
            "https://www.googleapis.com/auth/analytics.readonly https://www.googleapis.com/auth/webmasters.readonly"
        });

        this.auth = auth;
      });

      if (gapi.auth2 && !this.auth) {
        this.auth = gapi.auth2.getAuthInstance();
      }
    });
  }

Позже мы вызываем this.auth.grantOfflineAccess(params), который возвращает токен, который мы сохраним на потом.

Если я отключу Google+ APIна панели инструментов Google Platform вход в систему прекращает работать, и всплывающее окно отвечает с ошибкой входа.Я также смог подтвердить, что Google+ API (из его панели метрик) действительно используется в процессе, когда наши пользователи подписывают всплывающее окно и предоставляют разрешения для области.

Как мне переписать это, чтобы оно победило 't использовать устаревший метод plus.people.getOpenIdConnect?

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Проблема была в бэкэнд-коде Rails, который обрабатывает OAuth2.Устаревший камень omniauth-google-oauth2 использовал устаревшую конечную точку Google+.

0 голосов
/ 28 декабря 2018

Я думаю, что каждый, кто использует Google+ API в своем приложении, получил эту почту.Не знаю, помогает ли это, но узнал, что это с сайта Google API.

Функция входа в Google+ полностью устарела и будет закрыта 7 марта 2019 года. Разработчикам следует перейти на новую версию.к более полной системе аутентификации входа в Google.

https://developers.google.com/+/web/api/javascript

https://developers.google.com/+/integrations-shutdown

Другие ссылки:

  1. Список подлежащих удалению API https://developers.google.com/+/api-shutdown
  2. Новый знак (идентификатор) https://developers.google.com/identity/
  3. Идентификация для веб-приложения https://developers.google.com/identity/sign-in/web/

Добавить Google Sign-In в ваше веб-приложение

function onSignIn(googleUser) {
  // Useful data for your client-side scripts:
  var profile=googleUser.getBasicProfile();
  console.log("ID: " + profile.getId()); // Don't send this directly to your server!
  console.log('Full Name: ' + profile.getName());
  console.log('Given Name: ' + profile.getGivenName());
  console.log('Family Name: ' + profile.getFamilyName());
  console.log("Image URL: " + profile.getImageUrl());
  console.log("Email: "+profile.getEmail());
  // The ID token you need to pass to your backend:
  var id_token=googleUser.getAuthResponse().id_token;
  console.log("ID Token: "+id_token);
}
<html lang="en">

<head>
  <meta name="google-signin-scope" content="profile email">
  <meta name="google-signin-client_id" content="YOUR_CLIENT_ID.apps.googleusercontent.com">
  <script src="https://apis.google.com/js/platform.js" async defer></script>
</head>

<body>
  <div class="g-signin2" data-onsuccess="onSignIn" data-theme="dark"></div>

</body>

</html>
...