आपके पास अपने उपयोगकर्ताओं को, अपने Google खातों का इस्तेमाल करके Firebase से पुष्टि करने की अनुमति देने का विकल्प होता है. Google साइन-इन फ़्लो को पूरा करने के लिए, Firebase SDK टूल का इस्तेमाल किया जा सकता है. इसके अलावा, 'Google से साइन इन करें' लाइब्रेरी का इस्तेमाल करके, साइन-इन फ़्लो को मैन्युअल तरीके से पूरा किया जा सकता है. इसके बाद, उससे मिलने वाले आईडी टोकन को Firebase में पास किया जा सकता है.
शुरू करने से पहले
- अपने JavaScript प्रोजेक्ट में Firebase जोड़ें.
- Firebase कंसोल में, साइन इन करने के तरीके के तौर पर Google को चालू करें:
- Firebase कंसोल में, Auth सेक्शन खोलें.
- साइन इन करने का तरीका टैब में, Google से साइन इन करने का तरीका चालू करें और सेव करें पर क्लिक करें.
Firebase SDK टूल की मदद से, साइन इन फ़्लो को मैनेज करना
अगर कोई वेब ऐप्लिकेशन बनाया जा रहा है, तो Firebase के साथ अपने उपयोगकर्ताओं की पुष्टि करने का सबसे आसान तरीका यह है कि Firebase JavaScript SDK टूल की मदद से साइन-इन फ़्लो को मैनेज किया जाए. (अगर आपको Node.js या किसी ऐसे अन्य एनवायरमेंट में उपयोगकर्ता की पुष्टि करनी है जो ब्राउज़र नहीं है, तो आपको साइन-इन फ़्लो को मैन्युअल तरीके से मैनेज करना होगा.)
Firebase JavaScript SDK टूल की मदद से साइन-इन फ़्लो को मैनेज करने के लिए, यह तरीका अपनाएं:
- Google की सेवा देने वाली कंपनी के ऑब्जेक्ट का इंस्टेंस बनाएं:
Web
import { GoogleAuthProvider } from "firebase/auth"; const provider = new GoogleAuthProvider();
Web
var provider = new firebase.auth.GoogleAuthProvider();
- ज़रूरी नहीं: OAuth 2.0 के ऐसे अन्य स्कोप बताएं जिनके लिए आपको पुष्टि करने वाली सेवा देने वाली कंपनी से अनुरोध करना है. स्कोप जोड़ने के लिए,
addScope
को कॉल करें. उदाहरण के लिए:Web
provider.addScope('https://www.googleapis.com/auth/contacts.readonly');
Web
provider.addScope('https://www.googleapis.com/auth/contacts.readonly');
- ज़रूरी नहीं: OAuth फ़्लो शुरू करने से पहले, Auth इंस्टेंस पर भाषा कोड अपडेट करें. इससे, उपयोगकर्ता की पसंदीदा भाषा में, सेवा देने वाली कंपनी के OAuth फ़्लो को स्थानीय भाषा में बदला जा सकता है. इसके लिए, OAuth फ़्लो शुरू करने से पहले, ज़रूरी कस्टम OAuth पैरामीटर को साफ़ तौर पर पास करने की ज़रूरत नहीं होती. उदाहरण के लिए:
Web
import { getAuth } from "firebase/auth"; const auth = getAuth(); auth.languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // auth.useDeviceLanguage();
Web
firebase.auth().languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // firebase.auth().useDeviceLanguage();
- ज़रूरी नहीं: OAuth प्रोवाइडर के ऐसे अतिरिक्त कस्टम पैरामीटर बताएं
जिन्हें आपको OAuth अनुरोध के साथ भेजना है. कस्टम पैरामीटर जोड़ने के लिए, शुरू किए गए प्रोवाइडर पर
setCustomParameters
को कॉल करें. इसके लिए, OAuth प्रोवाइडर के दस्तावेज़ में बताई गई कुंजी और उससे जुड़ी वैल्यू वाला ऑब्जेक्ट इस्तेमाल करें. उदाहरण के लिए:Web
provider.setCustomParameters({ 'login_hint': 'user@example.com' });
Web
provider.setCustomParameters({ 'login_hint': 'user@example.com' });
- Google के प्रॉवाइडर ऑब्जेक्ट का इस्तेमाल करके, Firebase से पुष्टि करें. आपके पास अपने उपयोगकर्ताओं को Google खातों से साइन इन करने के लिए कहने का विकल्प है. इसके लिए, आपके पास पॉप-अप विंडो खोलने या साइन-इन पेज पर रीडायरेक्ट करने का विकल्प है. मोबाइल डिवाइसों पर, रीडायरेक्ट करने का तरीका इस्तेमाल करना बेहतर होता है.
- पॉप-अप विंडो से साइन इन करने के लिए,
signInWithPopup
को कॉल करें:Web
import { getAuth, signInWithPopup, GoogleAuthProvider } from "firebase/auth"; const auth = getAuth(); signInWithPopup(auth, provider) .then((result) => { // This gives you a Google Access Token. You can use it to access the Google API. const credential = GoogleAuthProvider.credentialFromResult(result); const token = credential.accessToken; // The signed-in user info. const user = result.user; // IdP data available using getAdditionalUserInfo(result) // ... }).catch((error) => { // Handle Errors here. const errorCode = error.code; const errorMessage = error.message; // The email of the user's account used. const email = error.customData.email; // The AuthCredential type that was used. const credential = GoogleAuthProvider.credentialFromError(error); // ... });
Web
firebase.auth() .signInWithPopup(provider) .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; // IdP data available in result.additionalUserInfo.profile. // ... }).catch((error) => { // Handle Errors here. var errorCode = error.code; var errorMessage = error.message; // The email of the user's account used. var email = error.email; // The firebase.auth.AuthCredential type that was used. var credential = error.credential; // ... });
यहां गड़बड़ियों का पता लगाया जा सकता है और उन्हें ठीक किया जा सकता है. गड़बड़ी के कोड की सूची के लिए, पुष्टि करने से जुड़े रेफ़रंस दस्तावेज़ देखें.
- साइन इन पेज पर रीडायरेक्ट करके साइन इन करने के लिए,
signInWithRedirect
को कॉल करें: `signInWithRedirect` का इस्तेमाल करते समय, सबसे सही तरीके अपनाएं.Web
import { getAuth, signInWithRedirect } from "firebase/auth"; const auth = getAuth(); signInWithRedirect(auth, provider);
Web
firebase.auth().signInWithRedirect(provider);
getRedirectResult
को कॉल करके, Google की सेवा देने वाली कंपनी का OAuth टोकन भी वापस पाया जा सकता है:Web
import { getAuth, getRedirectResult, GoogleAuthProvider } from "firebase/auth"; const auth = getAuth(); getRedirectResult(auth) .then((result) => { // This gives you a Google Access Token. You can use it to access Google APIs. const credential = GoogleAuthProvider.credentialFromResult(result); const token = credential.accessToken; // The signed-in user info. const user = result.user; // IdP data available using getAdditionalUserInfo(result) // ... }).catch((error) => { // Handle Errors here. const errorCode = error.code; const errorMessage = error.message; // The email of the user's account used. const email = error.customData.email; // The AuthCredential type that was used. const credential = GoogleAuthProvider.credentialFromError(error); // ... });
Web
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; // IdP data available in result.additionalUserInfo.profile. // ... }).catch((error) => { // Handle Errors here. var errorCode = error.code; var errorMessage = error.message; // The email of the user's account used. var email = error.email; // The firebase.auth.AuthCredential type that was used. var credential = error.credential; // ... });
- पॉप-अप विंडो से साइन इन करने के लिए,
Chrome एक्सटेंशन में Firebase की मदद से पुष्टि करना
अगर आपको Chrome एक्सटेंशन ऐप्लिकेशन बनाना है, तो ऑफ़स्क्रीन दस्तावेज़ों से जुड़ी गाइड देखें.
अगले चरण
जब कोई उपयोगकर्ता पहली बार साइन इन करता है, तो उसके लिए नया उपयोगकर्ता खाता बन जाता है. साथ ही, उस खाते को उन क्रेडेंशियल से लिंक कर दिया जाता है जिनका इस्तेमाल करके उसने साइन इन किया था. जैसे, उपयोगकर्ता का नाम और पासवर्ड, फ़ोन नंबर या पुष्टि करने वाली सेवा की जानकारी. यह नया खाता, आपके Firebase प्रोजेक्ट के हिस्से के तौर पर सेव किया जाता है. इसका इस्तेमाल, आपके प्रोजेक्ट के हर ऐप्लिकेशन में किसी उपयोगकर्ता की पहचान करने के लिए किया जा सकता है. भले ही, उपयोगकर्ता साइन इन करने का तरीका कोई भी हो.
-
अपने ऐप्लिकेशन में, उपयोगकर्ता की पुष्टि की स्थिति जानने के लिए,
Auth
ऑब्जेक्ट पर ऑब्ज़र्वर सेट करने का सुझाव दिया जाता है. इसके बाद,User
ऑब्जेक्ट से उपयोगकर्ता की प्रोफ़ाइल की बुनियादी जानकारी पाई जा सकती है. उपयोगकर्ताओं को मैनेज करें देखें. अपने Firebase Realtime Database और Cloud Storage सुरक्षा नियमों में, आपके पास
auth
वैरिएबल से साइन इन किए गए उपयोगकर्ता का यूनीक उपयोगकर्ता आईडी पाने का विकल्प है. साथ ही, इसका इस्तेमाल करके यह कंट्रोल किया जा सकता है कि उपयोगकर्ता कौनसा डेटा ऐक्सेस कर सकता है.
पुष्टि करने वाली सेवा देने वाली कंपनी के क्रेडेंशियल को किसी मौजूदा उपयोगकर्ता खाते से लिंक करके, उपयोगकर्ताओं को पुष्टि करने वाली कई कंपनियों का इस्तेमाल करके, आपके ऐप्लिकेशन में साइन इन करने की अनुमति दी जा सकती है.
किसी उपयोगकर्ता को साइन आउट करने के लिए,
signOut
को कॉल करें:
Web
import { getAuth, signOut } from "firebase/auth"; const auth = getAuth(); signOut(auth).then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });
Web
firebase.auth().signOut().then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });