Аутентификация телефонного номера Firebase в Electron js, Angular 5

Я пытаюсь реализовать аутентификацию по номеру телефона Firebase, но есть проблема со средой, например, я использую electronic js.

Вот мой код

import { AngularFireAuth } from 'angularfire2/auth';
import * as firebase from 'firebase';

constructor(public afAuth: AngularFireAuth) {}

sendPhoneNumber() {

const phoneNumber = '+' + this.phoneNumber;
const appVerifier = new firebase.auth.RecaptchaVerifier('LoginPage-signInButton', {
    'size': 'invisible',
    'callback': (response) => {
      console.info('response', response)
    },
    'error-callback': (error) => {
      console.info('error', error);
    }
  });
  this.afAuth.auth.signInWithPhoneNumber(phoneNumber, appVerifier)
    .then(confirmationResult => {
      console.info(confirmationResult);
    }) 
}

И я получаю эту ошибку

code: "auth/operation-not-supported-in-this-environment"
message: "RecaptchaVerifier is only supported in a browser HTTP/HTTPS environment."

есть ли какие-либо решения этой проблемы или обходной путь?

Никто не сможет вам помочь, если вы не предоставите свой код или четко не объясните проблему, с которой вы столкнулись, что вы уже пробовали и т.д.

user2203384 09.08.2018 10:34

с моим кодом проблем нет, потому что он отлично работает в сети

Artyom Ohanyan 09.08.2018 10:36
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
480
1

Ответы 1

Основываясь на вашем вопросе, вы, похоже, пытаетесь обработать аутентификацию по телефону в своем электронном приложении. Аутентификация по телефону с использованием библиотеки Firebase JS может не работать в зависимости от того, как вы обрабатываете ее в своей среде Electron, поскольку reCAPTCHA не сможет проверить источник вашего приложения. Это связано с тем, что происхождение будет иметь вид file: //assets/index.html.

Служба аутентификации телефона Firebase для Интернета зависит от интерфейса верификатора приложения: https://firebase.google.com/docs/reference/js/firebase.auth.RecaptchaVerifier, который реализует RecaptchaVerifier.

Сделай это:

Откройте в браузере, отобразите reCAPTCHA, получите токен reCAPTCHA, закройте браузер и затем передайте его обратно в приложение Electron, а затем реализуйте свой собственный firebase.auth.ApplicationVerifier.

Откройте настраиваемую вкладку браузера и перенаправьте в свой собственный и белый список в консоли Firebase, где будет отображаться firebase.auth.RecaptchaVerifier. Затем вы передаете токен ответа reCAPTCHA обратно в свое приложение. Это гарантирует, что только ваше приложение сможет открыть его.

Вам нужно прослушивать входящие ссылки в вашем приложении и анализировать токен reCAPTCHA. Переупакуйте его в реализации firebase.auth.ApplicationVerifier. Теперь вы можете передать его в signInWithPhoneNumber для завершения входа.

Надеюсь это поможет.

Другие вопросы по теме