Ионная система проверки подлинности
Я создаю систему аутентификации по номеру сотового телефона в ионной 2, потому что я использую руководство Google
Во-первых, я считаю, firebase.auth.RecaptchaVerifier
(является одним из необходимых параметров)
this.autVer = new firebase.auth.RecaptchaVerifier('contCatcha', { 'size': 'invisible', 'callback': function (response) { // reCAPTCHA solved, allow signInWithPhoneNumber. } });
и laster использовать auth.signInWithPhoneNumber угловой огонь
- Cordova + Angularjs + Устройство готово
- Android 4.3 и PhoneGap, ссылка can not tap
- Как правильно определить изменение ориентации с помощью Phonegap на iOS?
- Кордова: Ошибка проверки требований для JDK 1.8 или выше
- как вы отображаете карту (Google) в приложении для Android-телефонии
this.afAuth.auth.signInWithPhoneNumber("+57" + this.numeroCelular, this.autVer).then(verificationId => { console.log("SMS Enviado"); this.confor = verificationId; this.loading.dismiss(); this.estado = 1; this.esperarCodigo(); })
Где второй параметр – firebase.auth.RecaptchaVerifier, созданный
В браузере моего компьютера все работает нормально, но на мобильном устройстве появляется следующее сообщение об ошибке:
Мне нужно заменить этот firebase.auth.RecaptchaVerifier
, но я не знаю, есть ли какой-либо подключаемый модуль или субметр, и что все работает. Я очень ценю ваш совет.
- Как я могу установить User Agent в приложении Cordova
- java.io.FileNotFoundException: этот файл не может быть открыт в качестве дескриптора файла; он, вероятно, сжат
- Ionic 3 - ios - отображение выбранного изображения на экране
- Создание значков iOS и Android в Кордове / PhoneGap
- Как использовать Google Analytics с помощью Phonegap без плагина?
- PhoneGap: открытие внешних URL-адресов в Safari
- Есть ли разница между командами PhoneGap и Cordova?
- Если в файле config.xml объявлен плагин phonegap?
К сожалению, аутентификация телефона с использованием библиотеки Firebase JS не будет работать в среде Cordova / Ionic, поскольку reCAPTCHA не сможет проверить происхождение вашего приложения. Это связано с тем, что источник будет выглядеть как файл: //assets/index.html.
То, что вы можете сделать, чтобы заставить его работать, следующее: Firebase Phone auth для Интернета зависит от интерфейса верификатора приложения: https://firebase.google.com/docs/reference/js/firebase.auth.ApplicationVerifier, который реализует RecaptchaVerifier. Он определяет свойство «тип», которое должно быть равно «recaptcha». Он определяет метод verify (): Promise, который разрешается с помощью маркера reCAPTCHA.
Что вы можете сделать, так это вам нужно открыть веб-сайт, отобразить reCAPTCHA, получить токен reCAPTCHA, а затем передать его обратно в свое приложение, где вы будете использовать свой собственный firebase.auth.ApplicationVerifier
Наиболее безопасный способ сделать это:
-
Откройте хромированную пользовательскую вкладку или SFSafariViewController (не используйте встроенные веб-просмотры) и перенаправляйтесь на свой собственный веб-сайт и белили в консоли Firebase, где будет отображаться firebase.auth.RecaptchaVerifier. Для этого вы можете использовать cordova-plugin-browsertab.
-
Затем вы передаете токен reCAPTCHA обратно в свое приложение с помощью FDL (Firebase Dynamic Links) и добавьте его в глубокую ссылку. Это гарантирует, что только ваше приложение сможет его открыть. Вам нужно будет настроить Firebase Dynamic Links, чтобы заставить их работать правильно.
-
Вам необходимо прослушать входящие ссылки в мобильном приложении. Вы можете использовать плагин cordova-universal-links-plugin.
-
Разберите токен reCAPTCHA из глубокой ссылки. Переустановите его в реализации firebase.auth.ApplicationVerifier. Теперь вы можете передать его в signInWithPhoneNumber для завершения входа.
Это потребует некоторой работы, но необходимо для минимизации риска фишинговых атак и злоупотреблений.
Прежде всего, Cordova / Ionic использует протокол file: ///, так что Recaptcha не будет работать в вашем приложении (только в браузере, так как это http). Библиотека Firebase / Recaptcha проверяет наличие location.protocol и ожидает http / https, но это не относится к Cordova, как упоминалось. Возможным обходным решением будет локальный сервер, работающий на вашем телефоне. например, cordova-httpd или cordova-plugins # local-webserver (или в HTTP-браузере в приложении). После этого вы можете реализовать невидимую капчу (как описано в документах firebase). Но все же, иногда пользователь получает всплывающее окно, чтобы решить капчу, поэтому он не идеален.
Так как нет смысла иметь captcha на мобильной среде (в большинстве случаев, по крайней мере), я начал работать над собственной реализацией аутентификации телефона Firebase для Cordova / Ionic. Я начал с версии iOS.
Может ли кто-нибудь поддержать меня, чтобы реализовать версию java / android?
Если вы не хотите использовать динамические / глубокие ссылки, предложенные bojeil, вы можете попробовать следующее:
Используя Кордову, я перевел весь процесс аутентификации на веб-страницу, размещенную на моем сервере. Из моего приложения я использовал браузер приложений для запуска веб-страницы, а затем выполнил всю связь с браузером приложений, долгое время опросив сервер, который действует как посредник. Мне даже удалось разобрать SMS и закрыть браузер в конце автоматически.
Чтобы это сработало, будьте осторожны с безопасностью, которая может быть довольно сложной.
Кроме того, вы можете использовать базу данных Firebase Realtime вместо опроса сервера для передачи сообщений.
Возможно, вам нужны плагины cordova:
- InAppBrowser
- BackgroundMode
- разрешение
- Плагин SMS-приемника Cordova