Firebase - не могу авторизоваться с помощью входа в Google - PullRequest
3 голосов
/ 17 мая 2019

Я играю с Firebase и пытаюсь пройти аутентификацию через вход в Google. Я создал проект firebase и, используя методы входа, включил провайдера Google.

Тогда в моем index.html у меня есть это, которое в основном было сгенерировано firebase init. Я добавил туда кнопку.

<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- update the version number as needed -->
    <script defer src="/__/firebase/6.0.2/firebase-app.js"></script>
    <!-- include only the Firebase features as you need -->
    <script defer src="/__/firebase/6.0.2/firebase-auth.js"></script>
    <script defer src="/__/firebase/6.0.2/firebase-database.js"></script>
    <script defer src="/__/firebase/6.0.2/firebase-messaging.js"></script>
    <script defer src="/__/firebase/6.0.2/firebase-storage.js"></script>
    <!-- initialize the SDK after all desired features are loaded -->
    <script defer src="/__/firebase/init.js"></script>
    <script src="signin.js"></script>

    </style>
  </head>
  <body>
      <button id="signin">Sign in</button>
  </body>
</html>

И в моем signin.js я обрабатываю логин

document.addEventListener("DOMContentLoaded", function(event) { 
    var firebaseConfig = {
        apiKey: "AIzaSyC8bHVEtWDcTLJ0b8UOOZ5ClCV1tobqm5w",
        authDomain: "second-d10d4.firebaseapp.com",
        databaseURL: "https://second-d10d4.firebaseio.com",
        projectId: "second-d10d4",
        storageBucket: "second-d10d4.appspot.com",
        messagingSenderId: "912088308787",
        appId: "1:912088308787:web:24c9fa6af5dd0771"
      };
      // Initialize Firebase
      firebase.initializeApp(firebaseConfig);
    let signinbutton = document.getElementById("signin");
    signinbutton.addEventListener("click", signin);            
  });

  function signin(){
    var provider = new firebase.auth.GoogleAuthProvider()
    firebase.auth().signInWithPopup(provider)
    .then(result => {
        console.log("auth success")
        console.log(result)

        var token = result.credential.accessToken

        var user = result.user

    })
    .catch(error => {
        console.log("auth error")

        var errorCode = error.code;
        var errorMessage = error.message;

        var email = error.email;

        var credential = error.credential;

    })
}


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

403. That’s an error.

Error: restricted_client

Application: project-912088308787

You can email the developer of this application at: unconfiguredapp@google.com

This app is not yet configured to make OAuth requests. To do that, set up the app’s OAuth consent screen in the Google Cloud Console.

Learn more

Request Details
response_type=code
client_id=912088308787-potc94v4vl23tscu3gm9pnqu282s52nl.apps.googleusercontent.com
redirect_uri=https://second-d10d4.firebaseapp.com/__/auth/handler
state=AMbdmDnNM2kSjUeMO4KsxjdWqODEehA03g2bOBE5ZMEgzwCFXx5_n81fN_IKs52mn6P9bWpzMGF0ja9gDSyA39vx5ukZo_bY6UBitPUkFTKQvK3hSYxYyrjCxW4mJ3F5076yhktxbVchOAkMtKCl7vyh2pX4SjBV2YjvP-_CL8l9y-RWaegyO7_qq7qcxXsjVe8SKziqRV_AjMt7I9GZTVfaLovBfz-KkLwG1CSGdvfXs8XZImuDz6KR9sri-QlcDFthhxih0EOi9fJt10oNYEvBNtn5Y_54sQcMVKanlnIWiltG-KJyjY_0pwy6HyhPBDdDGKUe5g
scope=openid https://www.googleapis.com/auth/userinfo.email profile https://www.googleapis.com/auth/contacts.readonly

Кто-нибудь знает, что может быть причиной этой ошибки?

Edit: Задача решена. Эта проблема не имеет ничего общего с Google Cloud Platform API, поскольку она уже включена. Решение, предложенное пользователем: Vanduc1102 исправило его. Установите адрес поддержки в настройках проекта Firebase enter image description here

Ответы [ 3 ]

15 голосов
/ 22 мая 2019

У меня возникла проблема при прохождении урока: https://medium.com/firebase-developers/how-to-setup-firebase-authentication-with-react-in-5-minutes-maybe-10-bb8bb53e8834

Я исправил проблему, исправив поле email поддержки , оно было пустым

enter image description here

3 голосов
/ 17 мая 2019

Вы установили свой экран согласия OAuth?

Если нет, вам нужно настроить его здесь: https://console.developers.google.com/apis/credentials/consent

Получаете ли вы это сообщение, когда пытаетесь пройти аутентификацию через вход в Google?Если это так, нажмите на ссылку «Узнать больше», и она также перейдет на страницу настройки OAuth Consent Screen.

enter image description here

Обязательно выберитеадрес электронной почты (я забыл об этом раньше, и это привело к этой ошибке!)

Наконец, если вы все это сделали и все еще видите сообщение об ошибке, вы можете открыть инкогнитобраузер и / или очистить кэш.

2 голосов
/ 17 мая 2019

Настройка OAuth 2.0 Чтобы использовать OAuth 2.0 в своем приложении, вам необходим идентификатор клиента OAuth 2.0, который ваше приложение использует при запросе токена доступа OAuth 2.0.

Чтобы создать идентификатор клиента OAuth 2.0 в консоли:

Перейдите в консоль Google Cloud Platform. В списке проектов выберите проект или создайте новый. Если страница API и сервисов еще не открыта, откройте левое боковое меню консоли и выберите API и сервисы. Слева щелкните «Учетные данные». Нажмите Новые учетные данные, затем выберите идентификатор клиента OAuth. Примечание. Если вы не уверены, подходит ли OAuth 2.0 для вашего проекта, выберите «Помогите выбрать» и следуйте инструкциям для выбора правильных учетных данных.

Выберите подходящий тип приложения для вашего проекта и введите любую дополнительную необходимую информацию. Типы приложений описаны более подробно в следующих разделах. Если вы впервые создаете идентификатор клиента, вы также можете настроить экран согласия, щелкнув Экран согласия. (Следующая процедура объясняет, как настроить экран согласия.) Вам не будет предложено настроить экран согласия после того, как вы сделаете это в первый раз. Нажмите Создать идентификатор клиента

...