फायरबेस जेएस एसडीके के साथ, आप अपने फायरबेस उपयोगकर्ताओं को कॉर्डोवा वातावरण में किसी भी समर्थित OAuth प्रदाता का उपयोग करके प्रमाणित करने दे सकते हैं। आप किसी भी समर्थित OAuth प्रदाता को साइन-इन प्रवाह करने के लिए Firebase SDK का उपयोग करके, या OAuth प्रवाह को मैन्युअल रूप से निष्पादित करके और परिणामी OAuth क्रेडेंशियल को Firebase में पास करके एकीकृत कर सकते हैं।
कॉर्डोवा के लिए फायरबेस प्रमाणीकरण सेट करें
अपने जावास्क्रिप्ट प्रोजेक्ट में फायरबेस जोड़ें । फायरबेस स्निपेट जोड़ते समय,
authDomain
कॉन्फ़िगरेशन वेरिएबल पर ध्यान दें, जोmy-app.firebaseapp.com
जैसा दिखना चाहिए। यदि फायरबेस प्रावधानितfirebaseapp.com
डोमेन के बजाय एक कस्टम डोमेन का उपयोग किया जाता है, तो इसके बजाय कस्टम डोमेन का उपयोग किया जाना चाहिए।एंड्रॉइड ऐप सेट करने के लिए, अपने एंड्रॉइड ऐप को फायरबेस कंसोल में जोड़ें और अपने ऐप का विवरण दर्ज करें। आपको जेनरेट की गई google-services.json की आवश्यकता नहीं है।
एक iOS ऐप सेट करने के लिए, एक iOS एप्लिकेशन बनाएं और इसे फायरबेस कंसोल में जोड़ें। कस्टम यूआरएल स्कीम प्लगइन इंस्टॉल करते समय आपको बाद में जोड़ने के लिए आईओएस बंडल आईडी की आवश्यकता होगी।
फायरबेस डायनेमिक लिंक सक्षम करें:
- फायरबेस कंसोल में, डायनेमिक लिंक अनुभाग खोलें।
यदि आपने अभी तक डायनामिक लिंक शर्तों को स्वीकार नहीं किया है और डायनामिक लिंक डोमेन नहीं बनाया है, तो अभी ऐसा करें।
यदि आपने पहले ही डायनेमिक लिंक डोमेन बना लिया है, तो इस पर ध्यान दें। एक डायनामिक लिंक डोमेन आमतौर पर निम्नलिखित उदाहरण जैसा दिखता है:
example.page.link
जब आप आने वाले लिंक को इंटरसेप्ट करने के लिए अपने ऐप्पल या एंड्रॉइड ऐप को कॉन्फ़िगर करेंगे तो आपको इस मान की आवश्यकता होगी।
फायरबेस कंसोल में Google साइन-इन सक्षम करें:
- फायरबेस कंसोल में, ऑथ सेक्शन खोलें।
- साइन इन विधि टैब पर, Google साइन-इन विधि सक्षम करें और सहेजें पर क्लिक करें।
अपने कॉर्डोवा प्रोजेक्ट में आवश्यक प्लगइन्स इंस्टॉल करें।
# Plugin to pass application build info (app name, ID, etc) to the OAuth widget. cordova plugin add cordova-plugin-buildinfo --save # Plugin to handle Universal Links (Android app link redirects) cordova plugin add cordova-universal-links-plugin-fix --save # Plugin to handle opening secure browser views on iOS/Android mobile devices cordova plugin add cordova-plugin-browsertab --save # Plugin to handle opening a browser view in older versions of iOS and Android cordova plugin add cordova-plugin-inappbrowser --save # Plugin to handle deep linking through Custom Scheme for iOS # Substitute *com.firebase.cordova* with the iOS bundle ID of your app. cordova plugin add cordova-plugin-customurlscheme --variable \ URL_SCHEME=com.firebase.cordova --save
निम्नलिखित कॉन्फ़िगरेशन को अपनी कॉर्डोवा
config.xml
फ़ाइल में जोड़ें, जहांAUTH_DOMAIN
चरण (1) से डोमेन है, औरDYNAMIC_LINK_DOMAIN
चरण (3c) से डोमेन है।<universal-links> <host name="DYNAMIC_LINK_DOMAIN" scheme="https" /> <host name="AUTH_DOMAIN" scheme="https"> <path url="/__/auth/callback"/> </host> </universal-links>
एक उदाहरण कॉन्फ़िगरेशन ऐसा दिख सकता है:
<universal-links> <host name="example.page.link" scheme="https" /> <host name="example-app.firebaseapp.com" scheme="https"> <path url="/__/auth/callback"/> </host> </universal-links>
यदि कस्टम डोमेन
auth.custom.domain.com
उपयोग किया जाता है, तो उसके स्थान परmy-app.firebaseapp.com
रखें।एंड्रॉइड एप्लिकेशन के लिए
singleTask
उपयोगlaunchMode
के लिए किया जाना चाहिए।<preference name="AndroidLaunchMode" value="singleTask" />
फायरबेस एसडीके के साथ साइन-इन प्रवाह को संभालें
वर्तमान कॉर्डोवा वातावरण को सही ढंग से निर्धारित करने के लिए फायरबेस प्रामाणिक
deviceReady
इवेंट पर निर्भर करता है। सुनिश्चित करें कि उस इवेंट के ट्रिगर होने के बाद फायरबेस ऐप इंस्टेंस आरंभ किया गया है।Google प्रदाता ऑब्जेक्ट का एक उदाहरण बनाएं:
Web modular API
import { GoogleAuthProvider } from "firebase/auth/cordova"; const provider = new GoogleAuthProvider();
Web namespaced API
var provider = new firebase.auth.GoogleAuthProvider();
signInWithRedirect
का उपयोग करके Google प्रदाता ऑब्जेक्ट का उपयोग करके फायरबेस के साथ प्रमाणित करें। ध्यान दें कि कॉर्डोवा मेंsignInWithPopup
समर्थित नहीं है।Web modular API
import { getAuth, signInWithRedirect, getRedirectResult, GoogleAuthProvider } from "firebase/auth/cordova"; const auth = getAuth(); signInWithRedirect(auth, new GoogleAuthProvider()) .then(() => { return getRedirectResult(auth); }) .then((result) => { const credential = GoogleAuthProvider.credentialFromResult(result); // This gives you a Google Access Token. // You can use it to access the Google API. const token = credential.accessToken; // The signed-in user info. const user = result.user; // ... }).catch((error) => { // Handle Errors here. const errorCode = error.code; const errorMessage = error.message; });
Web namespaced API
firebase.auth().signInWithRedirect(provider).then(() => { return firebase.auth().getRedirectResult(); }).then((result) => { /** @type {firebase.auth.OAuthCredential} */ var credential = result.credential; // This gives you a Google Access Token. // You can use it to access the Google API. var token = credential.accessToken; // The signed-in user info. var user = result.user; // ... }).catch((error) => { // Handle Errors here. var errorCode = error.code; var errorMessage = error.message; });
उस मामले को संभालने के लिए जहां साइन-इन ऑपरेशन पूरा होने से पहले ऐप गतिविधि नष्ट हो जाती है, जब आपका ऐप लोड होता है तो
getRedirectResult
पर कॉल करें।Web modular API
import { getAuth, getRedirectResult, GoogleAuthProvider } from "firebase/auth/cordova"; const auth = getAuth(); getRedirectResult(auth) .then((result) => { const credential = GoogleAuthProvider.credentialFromResult(result); if (credential) { // This gives you a Google Access Token. // You can use it to access the Google API. const token = credential.accessToken; // The signed-in user info. const user = result.user; // ... } }) .catch((error) => { // Handle Errors here. const errorCode = error.code; const errorMessage = error.message; });
Web namespaced API
firebase.auth().getRedirectResult().then((result) => { if (result.credential) { /** @type {firebase.auth.OAuthCredential} */ var credential = result.credential; // This gives you a Google Access Token. // You can use it to access the Google API. var token = credential.accessToken; // The signed-in user info. var user = result.user; // ... } }).catch((error) => { // Handle Errors here. var errorCode = error.code; var errorMessage = error.message; });
उसी तंत्र का उपयोग किसी नए प्रदाता को
linkWithRedirect
के माध्यम से लिंक करने के लिए याreauthenticateWithRedirect
का उपयोग करके किसी मौजूदा प्रदाता के साथ पुन: प्रमाणित करने के लिए किया जा सकता है।