Microsoft और C++ का इस्तेमाल करके पुष्टि करें

आप OAuth प्रोवाइडर जैसे वेब पर आधारित जेनरिक OAuth लॉगिन को इंटिग्रेट करके, Microsoft Azure Active Directory का इस्तेमाल करें आखिर तक साइन-इन फ़्लो को पूरा करने के लिए, Firebase SDK टूल का इस्तेमाल करके अपने ऐप्लिकेशन में. इस फ़्लो के लिए फ़ोन पर आधारित Firebase SDK टूल का इस्तेमाल करना ज़रूरी होता है. इसलिए, यह सुविधा सिर्फ़ यह सुविधा, Android और Apple प्लैटफ़ॉर्म पर काम करती है.

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

  1. अपने C++ प्रोजेक्ट में Firebase जोड़ें.
  2. Firebase कंसोल में, पुष्टि करें सेक्शन खोलें.
  3. साइन इन करने का तरीका टैब पर, Microsoft प्रोवाइडर को चालू करें.
  4. उस कंपनी के डेवलपर कंसोल से क्लाइंट आईडी और क्लाइंट सीक्रेट जोड़ें प्रोवाइडर कॉन्फ़िगरेशन:
    1. Microsoft OAuth क्लाइंट को रजिस्टर करने के लिए, यहां दिए गए निर्देशों का पालन करें क्विकस्टार्ट: Azure Active Directory v2.0 एंडपॉइंट के साथ किसी ऐप्लिकेशन को रजिस्टर करें. ध्यान दें कि इस एंडपॉइंट पर, Microsoft निजी खातों और Azure का इस्तेमाल करके साइन इन किया जा सकता है ऐक्टिव डायरेक्ट्री खाते. ज़्यादा जानें Azure Active Directory v2.0 के बारे में जानकारी.
    2. इन कंपनियों के साथ ऐप्लिकेशन रजिस्टर करते समय, आपके प्रोजेक्ट के लिए *.firebaseapp.com डोमेन, आपके है.
  5. सेव करें पर क्लिक करें.

firebase::auth::Auth क्लास को ऐक्सेस करें

Auth क्लास, सभी एपीआई कॉल के लिए गेटवे होती है.
  1. पुष्टि करने वाली और ऐप्लिकेशन की हेडर फ़ाइलें जोड़ें:
    #include "firebase/app.h"
    #include "firebase/auth.h"
    
    अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
  2. अपने इनिशलाइज़ेशन कोड में, firebase::App क्लास.
    #if defined(__ANDROID__)
      firebase::App* app =
          firebase::App::Create(firebase::AppOptions(), my_jni_env, my_activity);
    #else
      firebase::App* app = firebase::App::Create(firebase::AppOptions());
    #endif  // defined(__ANDROID__)
    
  3. अपनी firebase::App के लिए firebase::auth::Auth क्लास पाएं. App और Auth के बीच वन-टू-वन मैपिंग है.
    firebase::auth::Auth* auth = firebase::auth::Auth::GetAuth(app);
    

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

Firebase SDK टूल की मदद से साइन इन फ़्लो मैनेज करने के लिए, यह तरीका अपनाएं:

  1. FederatedOAuthProviderData का एक इंस्टेंस बनाएं, जिसे इससे कॉन्फ़िगर किया गया हो Microsoft के लिए सही प्रोवाइडर आईडी.

    firebase::auth::FederatedOAuthProviderData
        provider_data(firebase::auth::MicrosoftAuthProvider::kProviderId);
    
  2. ज़रूरी नहीं: ऐसे अतिरिक्त कस्टम OAuth पैरामीटर तय करें जिन्हें आपको इस्तेमाल करना है OAuth अनुरोध के साथ भेजें.

    // Prompt user to re-authenticate to Microsoft.
    provider_data.custom_parameters["prompt"] = "login";
    
    // Target specific email with login hint.
    provider_data.custom_parameters["login_hint"] =
        "user@firstadd.onmicrosoft.com";
    

    Microsoft के साथ काम करने वाले पैरामीटर के लिए, Microsoft OAuth दस्तावेज़. ध्यान दें कि आप Firebase के लिए ज़रूरी पैरामीटर को setCustomParameters(). ये पैरामीटर client_id हैं, response_type, redirect_uri, राज्य, स्कोप, और response_mode का इस्तेमाल नहीं किया जा सकेगा.

    सिर्फ़ किसी खास Azure AD टेनेंट के उपयोगकर्ताओं को हस्ताक्षर करने की अनुमति देने के लिए ऐप्लिकेशन में, Azure AD टेनेंट का फ़्रेंडली डोमेन नेम सबमिट करें किराये पर लेने वाले के जीयूआईडी आइडेंटिफ़ायर का इस्तेमाल किया जा सकता है. ऐसा करने के लिए, "टेनेंट" फ़ील्ड में डालें.

    // Optional "tenant" parameter in case you are using an Azure AD tenant.
    // eg. '8eaef023-2b34-4da1-9baa-8bc8c9d6a490' or 'contoso.onmicrosoft.com'
    // or "common" for tenant-independent tokens.
    // The default value is "common".
    provider_data.custom_parameters["tenant"] ="TENANT_ID";
    
  3. ज़रूरी नहीं: बेसिक प्रोफ़ाइल के अलावा, OAuth 2.0 के अन्य दायरे तय करें. पुष्टि करने की सेवा देने वाली कंपनी से अनुरोध करें.

    provider_data.scopes.push_back("mail.read");
    provider_data.scopes.push_back("calendars.read");
    

    ज़्यादा जानकारी के लिए, इस लिंक पर जाएं Microsoft की अनुमतियां और सहमति से जुड़ा दस्तावेज़.

  4. सेवा देने वाली कंपनी का डेटा कॉन्फ़िगर होने के बाद, इसका इस्तेमाल करके FederatedOAuthProvider.

    // Construct a FederatedOAuthProvider for use in Auth methods.
    firebase::auth::FederatedOAuthProvider provider(provider_data);
    
  5. पुष्टि करने वाले ऑब्जेक्ट का इस्तेमाल करके, Firebase से पुष्टि करें. ध्यान दें कि नापसंद अन्य FirebaseAuth कार्रवाइयां करते हैं, तो यह पॉप-अप करके आपके यूज़र इंटरफ़ेस (यूआई) को कंट्रोल करेगा एक वेब व्यू बना सकते है, जिसमें उपयोगकर्ता अपने क्रेडेंशियल डाल सकते हैं.

    साइन इन फ़्लो शुरू करने के लिए, SignInWithProvider को कॉल करें:

    firebase::Future<firebase::auth::AuthResult> result =
      auth->SignInWithProvider(provider_data);
    

    इसके बाद आपका आवेदन इंतज़ार कर सकता है या आने वाले समय में कॉलबैक रजिस्टर करें.

    OAuth ऐक्सेस टोकन का इस्तेमाल करके, Microsoft ग्राफ़ API.

    Firebase पुष्टि करने की सुविधा के साथ काम करने वाली दूसरी कंपनियों के उलट, Microsoft ये काम नहीं करता है फ़ोटो का यूआरएल उपलब्ध कराएं. इसके बजाय, प्रोफ़ाइल फ़ोटो के लिए बाइनरी डेटा को इनके ज़रिए अनुरोध किया जाएगा Microsoft ग्राफ़ API.

  6. ऊपर दिए गए उदाहरण, साइन-इन करने के फ़्लो पर फ़ोकस करते हैं. हालांकि, आपके पास Microsoft Azure Active Directory में शामिल डायरेक्ट्री को किसी मौजूदा संगठन से लिंक करने की सुविधा LinkWithProvider का इस्तेमाल करने वाले उपयोगकर्ता. उदाहरण के लिए, आप एक से ज़्यादा साथ ही, उन दोनों में से किसी भी एक उपयोगकर्ता को साइन इन करने की अनुमति दे.

    firebase::Future<firebase::auth::AuthResult> result = user.LinkWithProvider(provider_data);
    
  7. ReauthenticateWithProvider के साथ भी इसी पैटर्न का इस्तेमाल किया जा सकता है. इसे इसका इस्तेमाल, संवेदनशील कार्रवाइयों के लिए नए क्रेडेंशियल हासिल करने के लिए किया जाता है. हाल ही का लॉगिन.

    firebase::Future<firebase::auth::AuthResult> result =
      user.ReauthenticateWithProvider(provider_data);
    

    इसके बाद, आपका ऐप्लिकेशन इंतज़ार कर सकता है या इस नंबर पर कॉलबैक रजिस्टर कर सकता है भविष्य.

अगले चरण

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

  • अपने ऐप्लिकेशन में, उपयोगकर्ता की बुनियादी प्रोफ़ाइल जानकारी को firebase::auth::User ऑब्जेक्ट:

    firebase::auth::User user = auth->current_user();
    if (user.is_valid()) {
      std::string name = user.display_name();
      std::string email = user.email();
      std::string photo_url = user.photo_url();
      // The user's ID, unique to the Firebase project.
      // Do NOT use this value to authenticate with your backend server,
      // if you have one. Use firebase::auth::User::Token() instead.
      std::string uid = user.uid();
    }
    
  • आपके Firebase रीयल टाइम डेटाबेस और Cloud Storage में सुरक्षा नियम, तो auth वैरिएबल से साइन-इन किए हुए उपयोगकर्ता का यूनीक यूज़र आईडी पाएं, और इसका इस्तेमाल करके यह कंट्रोल किया जा सकता है कि उपयोगकर्ता कौनसा डेटा ऐक्सेस कर सकता है.

उपयोगकर्ताओं को, पुष्टि करने के एक से ज़्यादा तरीके का इस्तेमाल करके, अपने ऐप्लिकेशन में साइन इन करने की अनुमति दी जा सकती है पुष्टि करने वाले के क्रेडेंशियल जोड़कर मौजूदा उपयोगकर्ता खाते से लिंक किया जा सकता है.

उपयोगकर्ता को साइन आउट करने के लिए पर कॉल करें SignOut():

auth->SignOut();