Аутентификация с Google без перенаправления вместо всплывающего окна - PullRequest
0 голосов
/ 03 апреля 2020

Я создал кнопку входа в Google:

<!DOCTYPE html>
<html>

<head>
  <title>Google Auth Demo</title>
  <meta name="google-signin-client_id" content="xxxx.apps.googleusercontent.com">
  <script src="https://apis.google.com/js/platform.js" async defer></script>
  <script>
    function signOut() {
      gapi.auth2.getAuthInstance().signOut().then(function() {
      console.log('user signed out')
    })};
    function onSignIn(googleUser) {
      console.log(googleUser.getBasicProfile());
    } 
  </script>
</head>
<body>
  <h1>Welcome to the Demo</h1>
  <div class="g-signin2" data-onsuccess="onSignIn" data-ux_mode="redirect" ></div>
  <button onclick="signOut()" >Sign out</button>
</body>
</html>

Я изменил параметр с всплывающего окна на data-ux_mode="redirect". Как мне настроить поле Authorized redirect URIs или изменить что-то еще для моего приложения на https://console.developer.google, чтобы я мог использовать его на localhost?

Здесь я нашел близкие проблемы: https://github.com/google/google-api-javascript-client/issues/288#issuecomment -289064472 . Таким образом, он доступен для реализации кода кнопки Google образца без открытия всплывающего окна?

1 Ответ

1 голос
/ 03 апреля 2020

Вам необходимо добавить авторизованные домены и перенаправить URI на ваш идентификатор клиента или ключи API, используя этот URL

https://console.cloud.google.com/apis/credentials?project= {YOUR-GOOGLE-CLOUD-PROJECT-NAME}

В основном в консоли GCP, на левой навигационной панели go для API и служб. Ищите там идентификатор клиента oAuth2.0, который вы используете в своем проекте. После того, как вы щелкнете по нему, у вас появится интерфейс для настройки авторизованных URI перенаправления и авторизованных JavaScript origins

Edit: после прохождения проблемы со связанным github (которая, кстати, все еще открыта), получить ее невозможно токен на локальный компьютер с помощью перенаправления UX. У них есть планы поддержать его в будущем, но в настоящее время он работает только с методом всплывающего окна.

Привет @Jeevsxp, получить код авторизации без всплывающего окна невозможно. Это ограничение безопасности: автономный код позволит вам получить на сервере refresh_token, что даст вам возможность получить fre sh access_token в любое время. Для этого пользователю необходимо явное согласие

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