Apple का JavaScript के साथ इस्तेमाल करके पुष्टि करें

आप अपने उपयोगकर्ताओं को उनके Apple ID का इस्तेमाल करके Firebase से पुष्टि करने दे सकते हैं. इसके लिए: शुरू से आखिर तक OAuth 2.0 साइन-इन फ़्लो लागू करने के लिए, Firebase SDK टूल का इस्तेमाल किया जाएगा.

शुरू करने से पहले

Apple का इस्तेमाल करके साइन इन करने के लिए, पहले 'Apple से साइन इन करें' सुविधा को कॉन्फ़िगर करें Apple की डेवलपर साइट पर जाएं, तो Apple को अपने Firebase प्रोजेक्ट.

Apple Developer Program में शामिल होना

'Apple से साइन इन करें' सुविधा को, सिर्फ़ Apple Developer के सदस्य कॉन्फ़िगर कर सकते हैं प्रोग्राम में शामिल हैं.

'Apple से साइन इन करें' सुविधा को कॉन्फ़िगर करें

Apple पर डेवलपर साइट पर जाकर, ये काम करें:

  1. पहले सेक्शन में बताए गए तरीके के मुताबिक, अपनी वेबसाइट को अपने ऐप्लिकेशन से जोड़ें में से 'वेब के लिए, 'Apple से साइन इन करें' सुविधा को कॉन्फ़िगर करना. जब कहा जाए, तब इस यूआरएल का इस्तेमाल, लौटाए गए यूआरएल के तौर पर करना होगा:

    https://YOUR_FIREBASE_PROJECT_ID.firebaseapp.com/__/auth/handler

    आपको अपना Firebase प्रोजेक्ट आईडी यहां मिल सकता है: Firebase कंसोल सेटिंग पेज पर जाएं.

    काम पूरा होने के बाद, अपना नया सेवा आईडी नोट कर लें. आपको अपनी नई सेवा आईडी को अगला सेक्शन देखें.

  2. किसी प्रॉडक्ट की बिक्री के लिए Apple निजी पासकोड से साइन इन करें. आपको अपनी नई निजी कुंजी और कुंजी की ज़रूरत होगी आईडी को अगले सेक्शन में देखें.
  3. अगर Firebase से पुष्टि करने की किसी भी ऐसी सुविधा का इस्तेमाल किया जा रहा है जो उपयोगकर्ताओं को ईमेल भेजती है, तो इसमें ईमेल लिंक से साइन इन करना, ईमेल पते की पुष्टि करना, और खाते में बदलाव करना शामिल है सहमति रद्द करने और अन्य, Apple की निजी ईमेल रिले सेवा को कॉन्फ़िगर करें और रजिस्टर करें noreply@YOUR_FIREBASE_PROJECT_ID.firebaseapp.com (या आपका कस्टमाइज़ किया गया ईमेल टेम्प्लेट डोमेन) ताकि Apple भेजे गए ईमेल आगे भेज सके Apple के ईमेल पतों पर Firebase से पुष्टि करने की सुविधा.

साइन इन की सेवा देने वाली कंपनी के तौर पर Apple की सेवाएं चालू करें

  1. अपने प्रोजेक्ट में Firebase जोड़ें.
  2. Firebase कंसोल में, पुष्टि करें सेक्शन खोलें. साइन इन करने का तरीका टैब पर, Apple कंपनी को चालू करें. पिछले सेक्शन में बनाया गया सेवा आईडी बताएं. साथ ही, OAuth कोड फ़्लो कॉन्फ़िगरेशन सेक्शन, अपना Apple Team ID बताएं और निजी पासकोड और की आईडी जिसे आपने पिछले सेक्शन में बनाया था.

उपयोगकर्ताओं की पहचान छिपाकर, Apple की डेटा से जुड़ी ज़रूरी शर्तों को पूरा करते हैं

'Apple से साइन इन करें' सुविधा की मदद से, उपयोगकर्ताओं को अपने डेटा की पहचान छिपाने का विकल्प मिलता है, साथ ही, साइन इन करते समय उनका ईमेल पता शामिल करें. इस विकल्प को चुनने वाले उपयोगकर्ता privaterelay.appleid.com डोमेन वाले ईमेल पते हैं. टास्क कब शुरू होगा अगर आपने अपने ऐप्लिकेशन में 'Apple से साइन इन करें' सुविधा का इस्तेमाल किया है, तो आपको लागू होने वाली सभी ज़रूरी शर्तों का पालन करना होगा पहचान छिपाने वाले इन Apple के बारे में डेवलपर की नीतियां या Apple की शर्तें आईडी.

इसमें आपसे पहले उपयोगकर्ता की सहमति लेना भी शामिल है पहचान ज़ाहिर करने वाली किसी भी निजी जानकारी को, पहचान छिपाने वाले Apple खाते से जोड़ना आईडी. Firebase से पुष्टि करने की सुविधा का इस्तेमाल करते समय, इसमें ये चीज़ें शामिल हो सकती हैं कार्रवाइयां:

  • किसी ईमेल पते को पहचान छिपाने वाले Apple ID से लिंक करें. इसी तरह, पहचान छिपाने वाले Apple ID से किसी ईमेल पते को लिंक करें.
  • किसी फ़ोन नंबर को पहचान छिपाने वाले Apple ID से लिंक करें. इसी तरह, किसी फ़ोन नंबर को बिना पहचान वाले Apple ID से लिंक करें
  • बिना पहचान वाले सोशल क्रेडेंशियल (Facebook, Google वगैरह) को किसी पहचान छिपाने वाला Apple ID या पहचान छिपाने वाला Apple ID इस्तेमाल करने के लिए भी किया जा सकता है.

ऊपर दी गई सूची पूरी नहीं है. Apple Developer Program देखें अपने डेवलपर खाते के सदस्यता सेक्शन में जाकर, लाइसेंस देने के लिए कानूनी समझौता पक्का करें कि आपका ऐप्लिकेशन Apple की ज़रूरी शर्तों को पूरा करता हो.

Firebase SDK टूल की मदद से साइन-इन की प्रोसेस को मैनेज करना

अगर आप कोई वेब ऐप्लिकेशन बना रहे हैं, तो अपने उपयोगकर्ताओं को अपने Apple खातों का इस्तेमाल करने वाले Firebase को Firebase JavaScript SDK टूल.

Firebase JavaScript SDK टूल से साइन-इन फ़्लो को मैनेज करने के लिए, इन निर्देशों का पालन करें कदम:

  1. OAuthProvider का इंस्टेंस बनाएं. इसके लिए, प्रोवाइडर आईडी apple.com.

    Web

    import { OAuthProvider } from "firebase/auth";
    
    const provider = new OAuthProvider('apple.com');

    Web

    var provider = new firebase.auth.OAuthProvider('apple.com');
  2. ज़रूरी नहीं: OAuth 2.0 के डिफ़ॉल्ट स्कोप के अलावा, और स्कोप शामिल करें पुष्टि करने की सेवा देने वाली कंपनी से अनुरोध करें.

    Web

    provider.addScope('email');
    provider.addScope('name');

    Web

    provider.addScope('email');
    provider.addScope('name');

    डिफ़ॉल्ट रूप से, हर ईमेल पते के लिए एक खाता चालू होने पर, Firebase ईमेल और नाम के दायरे का अनुरोध करता है. अगर आप इस सेटिंग को एक से ज़्यादा खाते प्रति ईमेल पते के लिए, Firebase, Apple से किसी स्कोप का अनुरोध नहीं करता है जब तक आप उन्हें निर्दिष्ट न करें.

  3. ज़रूरी नहीं: अगर आपको Apple की साइन-इन स्क्रीन को किसी भाषा में दिखाना है अंग्रेज़ी के अलावा, locale पैरामीटर सेट करें. ज़्यादा जानकारी के लिए, Apple के दस्तावेज़ों से साइन इन करना का इस्तेमाल करें.

    Web

    provider.setCustomParameters({
      // Localize the Apple authentication screen in French.
      locale: 'fr'
    });

    Web

    provider.setCustomParameters({
      // Localize the Apple authentication screen in French.
      locale: 'fr'
    });
  4. OAuth प्रोवाइडर ऑब्जेक्ट का इस्तेमाल करके, Firebase से पुष्टि करें. आप अपने उपयोगकर्ताओं को उनके Apple खातों से साइन इन करने के लिए कहें. इसके लिए, पॉप-अप विंडो पर क्लिक करें या साइन-इन पेज पर रीडायरेक्ट करें. रीडायरेक्ट करने का तरीका मोबाइल डिवाइस पर प्राथमिकता दी जाती है.

    • पॉप-अप विंडो की मदद से साइन इन करने के लिए, signInWithPopup() पर कॉल करें:

      Web

      import { getAuth, signInWithPopup, OAuthProvider } from "firebase/auth";
      
      const auth = getAuth();
      signInWithPopup(auth, provider)
        .then((result) => {
          // The signed-in user info.
          const user = result.user;
      
          // Apple credential
          const credential = OAuthProvider.credentialFromResult(result);
          const accessToken = credential.accessToken;
          const idToken = credential.idToken;
      
          // 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 credential that was used.
          const credential = OAuthProvider.credentialFromError(error);
      
          // ...
        });

      Web

      firebase
        .auth()
        .signInWithPopup(provider)
        .then((result) => {
          /** @type {firebase.auth.OAuthCredential} */
          var credential = result.credential;
      
          // The signed-in user info.
          var user = result.user;
      
          // You can also get the Apple OAuth Access and ID Tokens.
          var accessToken = credential.accessToken;
          var idToken = credential.idToken;
      
          // IdP data available using getAdditionalUserInfo(result)
        // ...
        })
        .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, linkWithRedirect या reauthenticateWithRedirect का इस्तेमाल करते समय, सबसे सही तरीके अपनाएं.

    Web

    import { getAuth, signInWithRedirect } from "firebase/auth";
    
    const auth = getAuth();
    signInWithRedirect(auth, provider);

    Web

    firebase.auth().signInWithRedirect(provider);

    उपयोगकर्ता के साइन-इन करने और पेज पर वापस लौटने के बाद, आपको getRedirectResult() पर कॉल करके साइन-इन का नतीजा:

    Web

    import { getAuth, getRedirectResult, OAuthProvider } from "firebase/auth";
    
    // Result from Redirect auth flow.
    const auth = getAuth();
    getRedirectResult(auth)
      .then((result) => {
        const credential = OAuthProvider.credentialFromResult(result);
        if (credential) {
          // You can also get the Apple OAuth Access and ID Tokens.
          const accessToken = credential.accessToken;
          const idToken = credential.idToken;
        }
        // The signed-in user info.
        const user = result.user;
      })
      .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 credential that was used.
        const credential = OAuthProvider.credentialFromError(error);
    
        // ...
      });

    Web

    // Result from Redirect auth flow.
    firebase
      .auth()
      .getRedirectResult()
      .then((result) => {
        if (result.credential) {
          /** @type {firebase.auth.OAuthCredential} */
          var credential = result.credential;
    
          // You can get the Apple OAuth Access and ID Tokens.
          var accessToken = credential.accessToken;
          var idToken = credential.idToken;
    
          // IdP data available in result.additionalUserInfo.profile.
          // ...
        }
        // The signed-in user info.
        var user = result.user;
      })
      .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;
    
        // ...
      });

    यहां पर गड़बड़ियों का पता लगाकर उन्हें ठीक भी किया जा सकता है. गड़बड़ी की सूची के लिए कोड है, तो एपीआई का संदर्भ.

    Firebase पुष्टि के साथ काम करने वाली दूसरी कंपनियों के उलट, Apple फ़ोटो का यूआरएल.

    साथ ही, जब उपयोगकर्ता अपने ईमेल को Apple के साथ शेयर न करने का विकल्प चुनता है उस उपयोगकर्ता के लिए एक अद्वितीय ईमेल पता (फ़ॉर्म के रूप में) xyz@privaterelay.appleid.com), जिसे यह आपके ऐप्लिकेशन के साथ शेयर करता है. अगर आपको ने निजी ईमेल रिले सेवा को कॉन्फ़िगर किया है, तो Apple उपयोगकर्ता के असली ईमेल पते से जोड़ा गया पता.

    Apple, उपयोगकर्ता की जानकारी जैसे कि डिसप्ले नेम को सिर्फ़ उन ऐप्लिकेशन के साथ शेयर करता है: जब कोई उपयोगकर्ता पहली बार साइन इन करता है. आम तौर पर, Firebase आम तौर पर जब कोई उपयोगकर्ता पहली बार Apple में साइन इन करता है. firebase.auth().currentUser.displayName. हालांकि, अगर आपने पहले Apple का इस्तेमाल करके किसी उपयोगकर्ता को बिना साइन इन किए ऐप्लिकेशन में साइन इन किया था अगर आपने Firebase का इस्तेमाल किया है, तो Apple, Firebase को उपयोगकर्ता का डिसप्ले नेम नहीं देगा.

फिर से पुष्टि करना और खाता लिंक करना

इसी पैटर्न का इस्तेमाल reauthenticateWithPopup() और reauthenticateWithRedirect(), जिसका इस्तेमाल करके नई संवेदनशील कार्रवाइयों के लिए क्रेडेंशियल, जिनमें हाल ही में साइन-इन करना ज़रूरी है:

Web

import { getAuth, reauthenticateWithPopup, OAuthProvider } from "firebase/auth";

// Result from Redirect auth flow.
const auth = getAuth();
const provider = new OAuthProvider('apple.com');

reauthenticateWithPopup(auth.currentUser, provider)
  .then((result) => {
    // User is re-authenticated with fresh tokens minted and can perform
    // sensitive operations like account deletion, or updating their email
    // address or password.

    // The signed-in user info.
    const user = result.user;

    // You can also get the Apple OAuth Access and ID Tokens.
    const credential = OAuthProvider.credentialFromResult(result);
    const accessToken = credential.accessToken;
    const idToken = credential.idToken;

    // ...
  })
  .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 credential that was used.
    const credential = OAuthProvider.credentialFromError(error);

    // ...
  });

Web

const provider = new firebase.auth.OAuthProvider('apple.com');

firebase
  .auth()
  .currentUser
  .reauthenticateWithPopup(provider)
  .then((result) => {
    // User is re-authenticated with fresh tokens minted and can perform
    // sensitive operations like account deletion, or updating their email
    // address or password.
    /** @type {firebase.auth.OAuthCredential} */
    var credential = result.credential;

    // The signed-in user info.
    var user = result.user;
     // You can also get the Apple OAuth Access and ID Tokens.
    var accessToken = credential.accessToken;
    var idToken = credential.idToken;

    // 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;

    // ...
  });

साथ ही, अलग-अलग यूआरएल को लिंक करने के लिए, linkWithPopup() और linkWithRedirect() का इस्तेमाल किया जा सकता है आइडेंटिटी प्रोवाइडर को मौजूदा खातों से लिंक करें.

ध्यान दें कि Apple को खाता लिंक करने से पहले, आपको उपयोगकर्ताओं से साफ़ तौर पर सहमति लेनी होगी अपने Apple खातों से साइन इन करते हैं.

उदाहरण के लिए, किसी Facebook खाते को मौजूदा Firebase खाते से लिंक करने के लिए, उपयोगकर्ता को Facebook में साइन इन करने पर मिला ऐक्सेस टोकन:

Web

import { getAuth, linkWithPopup, FacebookAuthProvider } from "firebase/auth";

const auth = getAuth();
const provider = new FacebookAuthProvider();
provider.addScope('user_birthday');

// Assuming the current user is an Apple user linking a Facebook provider.
linkWithPopup(auth.currentUser, provider)
    .then((result) => {
      // Facebook credential is linked to the current Apple user.
      // ...

      // The user can now sign in to the same account
      // with either Apple or Facebook.
    })
    .catch((error) => {
      // Handle error.
    });

Web

const provider = new firebase.auth.FacebookAuthProvider();
provider.addScope('user_birthday');

// Assuming the current user is an Apple user linking a Facebook provider.
firebase.auth().currentUser.linkWithPopup(provider)
    .then((result) => {
      // Facebook credential is linked to the current Apple user.
      // Facebook additional data available in result.additionalUserInfo.profile,

      // Additional Facebook OAuth access token can also be retrieved.
      // result.credential.accessToken

      // The user can now sign in to the same account
      // with either Apple or Facebook.
    })
    .catch((error) => {
      // Handle error.
    });

Chrome एक्सटेंशन में Firebase की मदद से पुष्टि करें

यदि आप कोई Chrome एक्सटेंशन ऐप्लिकेशन बना रहे हैं, तो ऑफ़स्क्रीन दस्तावेज़ गाइड.

ध्यान दें कि आपको अब भी Apple की मदद से कस्टम डोमेन की पुष्टि उसी तरह करनी होगी जिस तरह डिफ़ॉल्ट firebaseapp.com डोमेन:

http://auth.custom.example.com/.well-known/apple-developer-domain-association.txt

टोकन निरस्त करना

Apple के लिए यह ज़रूरी है कि खाता बनाने की सुविधा देने वाले ऐप्लिकेशन को, लोगों को ऐप्लिकेशन में अपने खाते को मिटाने की प्रोसेस, जैसा कि App Store समीक्षा में बताया गया है दिशा-निर्देश

इस ज़रूरी शर्त को पूरा करने के लिए, यह तरीका अपनाएं:

  1. पक्का करें कि आपने सेवा आईडी और OAuth कोड फ़्लो भरा हो 'Apple से साइन इन करें' कॉन्फ़िगरेशन का कॉन्फ़िगरेशन सेक्शन. 'Apple से साइन इन करें' सुविधा कॉन्फ़िगर करना सेक्शन में बताया गया है सेक्शन में जाएं.

  2. क्योंकि, Firebase, उपयोगकर्ता के टोकन को सेव नहीं करता है. Apple से साइन इन करें. रद्द करने से पहले, आपको उपयोगकर्ता को फिर से साइन इन करने के लिए कहना होगा टोकन और खाता मिटाने की प्रक्रिया शुरू कर सकते हैं.

    इसके बाद, OAuthCredential से Apple OAuth ऐक्सेस टोकन पाएं और Apple OAuth निरस्त करने के लिए revokeAccessToken(auth, token) को कॉल करने के लिए इसका इस्तेमाल करें ऐक्सेस टोकन.

    const provider = new OAuthProvider('apple.com');
    provider.addScope('email');
    provider.addScope('name');
    
    const auth = getAuth();
    signInWithPopup(auth, provider).then(result => {
      // Get the Apple OAuth access token.
      const credential = OAuthProvider.credentialFromResult(result);
      const accessToken = credential.accessToken;
    
      // Revoke the Apple OAuth access token.
      revokeAccessToken(auth, accessToken)
        .then(() => {
          // Token revoked.
    
          // Delete the user account.
          // ...
        })
        .catch(error => {
          // An error happened.
          // ...
        });
    });
    
  3. आखिर में, उपयोगकर्ता का खाता मिटाएं (और सभी जुड़ा हुआ डेटा है).

बेहतर सुविधा: Node.js में Firebase की मदद से पुष्टि करें

Node.js ऐप्लिकेशन में Firebase की मदद की पुष्टि करने के लिए:

  1. उपयोगकर्ता के Apple खाते से साइन इन करें और उसका Apple आईडी पाएं टोकन. इसे कई तरीकों से पूरा किया जा सकता है. उदाहरण के लिए, अगर आपका Node.js ऐप्लिकेशन में ब्राउज़र फ़्रंट एंड मौजूद है:

    1. अपने बैकएंड पर, एक रैंडम स्ट्रिंग ("nonce") जनरेट करें और SHA256 हैश. नॉन्स एक बार इस्तेमाल की जाने वाली वैल्यू है, जिसका इस्तेमाल एक राउंड ट्रिप का सुझाव दिया जा सकता है.

      Web

      const crypto = require("crypto");
      const string_decoder = require("string_decoder");
      
      // Generate a new random string for each sign-in
      const generateNonce = (length) => {
        const decoder = new string_decoder.StringDecoder("ascii");
        const buf = Buffer.alloc(length);
        let nonce = "";
        while (nonce.length < length) {
          crypto.randomFillSync(buf);
          nonce = decoder.write(buf);
        }
        return nonce.slice(0, length);
      };
      
      const unhashedNonce = generateNonce(10);
      
      // SHA256-hashed nonce in hex
      const hashedNonceHex = crypto.createHash('sha256')
        .update(unhashedNonce).digest().toString('hex');

      Web

      const crypto = require("crypto");
      const string_decoder = require("string_decoder");
      
      // Generate a new random string for each sign-in
      const generateNonce = function(length) {
        const decoder = new string_decoder.StringDecoder("ascii");
        const buf = Buffer.alloc(length);
        var nonce = "";
        while (nonce.length < length) {
          crypto.randomFillSync(buf);
          nonce = decoder.write(buf);
        }
        return nonce.slice(0, length);
      };
      
      const unhashedNonce = generateNonce(10);
      
      // SHA256-hashed nonce in hex
      const hashedNonceHex = crypto.createHash('sha256')
        .update(unhashedNonce).digest().toString('hex');
    2. अपने साइन-इन पेज पर, 'इससे साइन इन करें' सेक्शन में हैश की गई नॉन्स वैल्यू डालें Apple का कॉन्फ़िगरेशन:

      <script src="https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js"></script>
      <div id="appleid-signin" data-color="black" data-border="true" data-type="sign in"></div>
      <script>
          AppleID.auth.init({
              clientId: YOUR_APPLE_CLIENT_ID,
              scope: 'name email',
              redirectURI: URL_TO_YOUR_REDIRECT_HANDLER,  // See the next step.
              state: '[STATE]',  // Optional value that Apple will send back to you
                                 // so you can return users to the same context after
                                 // they sign in.
              nonce: HASHED_NONCE  // The hashed nonce you generated in the previous step.
          });
      </script>
      
    3. पोस्ट किए गए पुष्टि वाले रिस्पॉन्स सर्वर-साइड से Apple आईडी टोकन पाएं:

      app.post('/redirect', (req, res) => {
        const savedState = req.cookies.__session;
        const code = req.body.code;
        const state = req.body.state;
        const appleIdToken = req.body.id_token;
        if (savedState !== state || !code) {
          res.status(403).send('403: Permission denied');
        } else {
          // Sign in with Firebase using appleIdToken. (See next step).
        }
      });
      

    Apple से साइन इन करने के लिए, अपना वेबपेज कॉन्फ़िगर करना भी देखें.

  2. आपको उपयोगकर्ता का Apple ID टोकन मिलने के बाद, उसका इस्तेमाल क्रेडेंशियल बनाने के लिए करें ऑब्जेक्ट पर जाएं और उसके बाद उपयोगकर्ता को क्रेडेंशियल के साथ साइन इन करें:

    Web

    import { getAuth, signInWithCredential, OAuthProvider } from "firebase/auth";
    
    const auth = getAuth();
    
    // Build Firebase credential with the Apple ID token.
    const provider = new OAuthProvider('apple.com');
    const authCredential = provider.credential({
      idToken: appleIdToken,
      rawNonce: unhashedNonce,
    });
    
    // Sign in with credential form the Apple user.
    signInWithCredential(auth, authCredential)
      .then((result) => {
        // User signed in.
      })
      .catch((error) => {
        // An error occurred. If error.code == 'auth/missing-or-invalid-nonce',
        // make sure you're sending the SHA256-hashed nonce as a hex string
        // with your request to Apple.
        console.log(error);
      });

    Web

    // Build Firebase credential with the Apple ID token.
    const provider = new firebase.auth.OAuthProvider('apple.com');
    const authCredential = provider.credential({
      idToken: appleIdToken,
      rawNonce: unhashedNonce,
    });
    
    // Sign in with credential form the Apple user.
    firebase.auth().signInWithCredential(authCredential)
      .then((result) => {
        // User signed in.
      })
      .catch((error) => {
        // An error occurred. If error.code == 'auth/missing-or-invalid-nonce',
        // make sure you're sending the SHA256-hashed nonce as a hex string
        // with your request to Apple.
        console.log(error);
      });

अगले चरण

किसी उपयोगकर्ता के पहली बार साइन इन करने के बाद, एक नया उपयोगकर्ता खाता बना दिया जाता है और आपके खाते के क्रेडेंशियल मौजूद हैं, जैसे कि उपयोगकर्ता नाम और पासवर्ड, या पुष्टि करने वाली कंपनी की जानकारी—उपयोगकर्ता ने जिससे साइन इन किया है. यह नया खाते को आपके Firebase प्रोजेक्ट के हिस्से के तौर पर सेव किया जाता है. साथ ही, इसका इस्तेमाल आपके प्रोजेक्ट के हर ऐप्लिकेशन में हर उपयोगकर्ता के लिए उपलब्ध होता है. भले ही, उपयोगकर्ता किसी भी तरह से साइन इन करता हो.

  • आपके ऐप्लिकेशन में, उपयोगकर्ता के मालिकाना हक की स्थिति जानने के लिए, सुझाया गया तरीका यह है Auth ऑब्जेक्ट पर ऑब्ज़र्वर सेट करें. इसके बाद ही आप उपयोगकर्ता की User ऑब्जेक्ट से मिली, प्रोफ़ाइल की बुनियादी जानकारी. यहां जाएं: उपयोगकर्ताओं को मैनेज करें.

  • आपके Firebase रीयल टाइम डेटाबेस और 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.
});