Squeak.ru - шаблоны программирования

SignInSuccessWithAuthResult Firebase не вызывается

Я использую Firebase Auth для своего веб-сайта и столкнулся с проблемой. Я хочу избежать автоматического перенаправления после входа в систему, и, насколько я знаю, если вы вернете false в обратном вызове, оно не будет перенаправлено. Моя проблема в том, что обратный вызов signInSuccessWithAuthResult не вызывается. Почему это не вызывается и есть ли лучший способ добиться этого?

window.addEventListener('load', function () {
 var uiConfig = {
    callbacks: {
        signInSuccessWithAuthResult: function(authResult, redirectUrl) {
          // User successfully signed in.
          console.log("sign in success");
          // don't redirect automatically
          return false;
        }
    },
    signInSuccessUrl: <I dont want to go here>,
    signInOptions: [
      // Leave the lines as is for the providers you want to offer your users.
      firebase.auth.GoogleAuthProvider.PROVIDER_ID,
      firebase.auth.EmailAuthProvider.PROVIDER_ID
    ],
    // Terms of service url.
    tosUrl: '<your-tos-url>',
    // Privacy policy url.
    privacyPolicyUrl: '<your-privacy-policy-url>'
};

firebase.auth().onAuthStateChanged(function (user) {
        if (user) {
          user.getIdToken().then(function (accessToken) {
              console.log("token retrieved: "+accessToken);
              // Send token to your backend via HTTPS
              var xhr = new XMLHttpRequest();
              xhr.open('POST', '/');
              xhr.setRequestHeader('Content-Type', "application/x-www-form-urlencoded");
              xhr.onload = function() {
                console.log('Signed in as: ' + xhr.responseText);
                document.getElementById('firebaseui-auth-container').hidden=true;
              };
              xhr.send('token=' + accessToken);
           });
         }
     });
});

  • Это должно сработать. Ваш код выглядит нормально. У вас есть настройка прослушивателя onAuthStateChanged, которая перенаправляет или что-то в этом роде? Дополнительная информация будет полезна для решения вашей проблемы. 24.08.2018
  • Да, у меня был слушатель onAuthStateChanged, но он не перенаправляет. Я добавил это к своему вопросу. Слушатель onAuthStateChanged вызывается правильно каждый раз 25.08.2018
  • насколько я знаю.... - откуда вы взяли эту информацию о возвращении false? Мне кажется, что после успеха/неудачи firebase «нужно» перенаправить, и вы должны это сделать (на самом деле я не могу придумать серьезной причины не делать этого, но, возможно, она у вас есть...). Вчера я ответил на аналогичный вопрос своим кодом, который работает (непосредственно из моего приложения с комментариями и т. д.) - stackoverflow.com/questions/51954047/firebase-auth-js-php/ возможно поможет. (если вы пытаетесь просто оставаться на той же странице, вы также можете попробовать «перенаправить» обратно на ту же страницу??) 25.08.2018
  • Если обратный вызов возвращает значение true, то страница автоматически перенаправляется в зависимости от случая: если в URL-адресе не указан параметр signInSuccessUrl (см. Перезапись URL-адреса успешного входа), используется параметр signInSuccessUrl по умолчанию в конфигурации. Если значение указано в URL-адресе, это значение будет использоваться вместо статического signInSuccessUrl в config. Если обратный вызов возвращает false или ничего не возвращает, страница не перенаправляется автоматически. readme из firebase github 25.08.2018
  • Я не вижу никаких проблем с вашим кодом. Я предполагаю, что вы используете более старую версию firebaseui-web, где signInSuccessWithAuthResult еще не поддерживался. Ранее использовался signInSuccess, но теперь он устарел. 25.08.2018

Ответы:


1

Следуя совету @bojeil, я обновил библиотеку, и теперь она работает.

Обратите внимание, что страница по-прежнему перезагружается после входа в систему.

25.08.2018
  • Какую версию библиотеки вы сейчас используете? 19.07.2021
  • Новые материалы

    Угловая структура архитектуры
    Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

    «Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
    Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

    Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
    В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

    Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
    React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

    Создайте API с помощью Python FastAPI
    Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

    Веселье с прокси-сервером JavaScript
    Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

    Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
    Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...