Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

মাইক্রোসফ্ট এবং সি ++ ব্যবহার করে প্রমাণীকরণ করুন

আপনি সাইন-ইন প্রবাহ শেষ করার জন্য ফায়ারবেস এসডিকে ব্যবহার করে ওয়েব-ভিত্তিক জেনেরিক OAuth লগইনকে আপনার অ্যাপে যুক্ত করে মাইক্রোসফ্ট অজুর অ্যাক্টিভ ডাইরেক্টরির মতো OAuth প্রদানকারীদের ব্যবহার করে আপনার ব্যবহারকারীদের ফায়ারবেস দিয়ে প্রমাণীকরণ করতে পারেন। যেহেতু এই প্রবাহের জন্য ফোন ভিত্তিক ফায়ারবেস এসডিকে ব্যবহার প্রয়োজন, তাই এটি শুধুমাত্র অ্যান্ড্রয়েড এবং আইওএস প্ল্যাটফর্মে সমর্থিত।

তুমি শুরু করার আগে

  1. আপনার সি ++ প্রকল্পে Firebase যোগ করুন
  2. ইন Firebase কনসোল , প্রমাণীকরণ অধ্যায় খুলুন।
  3. পদ্ধতি ট্যাবে সাইন অন, মাইক্রোসফট প্রদানকারী সক্রিয় করুন।
  4. ক্লায়েন্ট আইডি এবং যে প্রদানকারীর ডেভেলপার প্রদানকারী কনফিগারেশন কনসোল থেকে ক্লায়েন্ট সিক্রেট যোগ করুন
    1. একটি Microsoft OAuth ক্লায়েন্ট নিবন্ধন করতে, নির্দেশাবলী অনুসরণ করুন দ্রুতশুরু: নিবন্ধন নভোনীল সক্রিয় ডিরেক্টরি 2.0 শেষবিন্দু দিয়ে একটি অ্যাপ্লিকেশন । মনে রাখবেন যে এই এন্ডপয়েন্টটি মাইক্রোসফট ব্যক্তিগত অ্যাকাউন্টের পাশাপাশি Azure Active Directory অ্যাকাউন্ট ব্যবহার করে সাইন-ইন সমর্থন করে। আরও জানুন নভোনীল সক্রিয় ডিরেক্টরি 2.0 সম্পর্কে।
    2. যখন এই প্রদানকারীর সঙ্গে অ্যাপ্লিকেশান নিবন্ধনের, রেজিস্টার নিশ্চিত করা *.firebaseapp.com আপনার অ্যাপের জন্য পুনর্নির্দেশ ডোমেইন হিসাবে আপনার প্রকল্পের জন্য ডোমেন।
  5. সংরক্ষণ ক্লিক করুন।

অ্যাক্সেস করুন firebase::auth::Auth বর্গ

Auth বর্গ সব API কল জন্য গেটওয়ে।
  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::auth::Auth আপনার জন্য ক্লাস firebase::App । তার মাঝে একটি একের সাথে এক ম্যাপিং হয় App এবং Auth
    firebase::auth::Auth* auth = firebase::auth::Auth::GetAuth(app);
    

ফায়ারবেস এসডিকে দিয়ে সাইন-ইন প্রবাহ পরিচালনা করুন

ফায়ারবেস এসডিকে দিয়ে সাইন-ইন প্রবাহ পরিচালনা করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. একটি একটি দৃষ্টান্ত আঁকো FederatedOAuthProviderData মাইক্রোসফট জন্য প্রদানকারীর আইডি উপযুক্ত কনফিগার।

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

    পরামিতি মাইক্রোসফট সমর্থন জন্য, দেখুন মাইক্রোসফট OAuth এর ডকুমেন্টেশন । মনে রাখবেন আপনি সঙ্গে Firebase-প্রয়োজনীয় পরামিতি প্রেরণ করতে পারবেন না setCustomParameters() । এই স্থিতিমাপগুলো client_id, response_type, REDIRECT_URI, রাজ্য, পরিধিresponse_mode হয়।

    শুধুমাত্র একটি নির্দিষ্ট Azure AD ভাড়াটে থেকে ব্যবহারকারীদের অ্যাপ্লিকেশনে সাইন ইন করার অনুমতি দেওয়ার জন্য, হয় Azure AD টেন্যান্টের বন্ধুত্বপূর্ণ ডোমেইন নাম অথবা ভাড়াটিয়ার GUID সনাক্তকারী ব্যবহার করা যেতে পারে। কাস্টম প্যারামিটার অবজেক্টে "ভাড়াটে" ক্ষেত্র নির্দিষ্ট করে এটি করা যেতে পারে।

    // 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. ঐচ্ছিক: সাধারণ প্রোফাইল পরলোক 2.0 সুযোগ উল্লেখ অতিরিক্ত OAuth এর যে আপনার প্রমাণীকরণ প্রদানকারীর থেকে অনুরোধ করতে চাই।

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

    আরো জানতে, পড়ুন মাইক্রোসফট অনুমতি ও সম্মতি ডকুমেন্টেশন

  4. একবার আপনার প্রদানকারীর ডেটা কনফিগার হয়ে গেলে, এটি একটি FederatedOAuthProvider তৈরি করতে ব্যবহার করুন।

    // Construct a FederatedOAuthProvider for use in Auth methods.
    firebase::auth::FederatedOAuthProvider provider(provider_data);
    
  5. Auth প্রদানকারী বস্তু ব্যবহার করে Firebase দিয়ে প্রমাণীকরণ করুন। লক্ষ্য করুন যে অন্যান্য FirebaseAuth অপারেশনের বিপরীতে, এটি একটি ওয়েব ভিউ পপ আপ করে আপনার UI- এর নিয়ন্ত্রণ গ্রহণ করবে যেখানে ব্যবহারকারী তাদের শংসাপত্রগুলি প্রবেশ করতে পারে।

    প্রবাহ সাইন ইন শুরু করার জন্য, কল signInWithProvider :

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

    আপনার অ্যাপ্লিকেশান তারপর অপেক্ষা করুন বা পারে ভবিষ্যত একটি কলব্যাক করো

    OAuth অ্যাক্সেস টোকেন ব্যবহার করে, আপনি কল করতে পারেন মাইক্রোসফট গ্রাফ এপিআই

    Firebase প্রমাণীকরণ দ্বারা সমর্থিত অন্যান্য প্রদানকারীর অসদৃশ, মাইক্রোসফট একটি ছবির URL প্রদান করে না এবং পরিবর্তে, একটি প্রোফাইল ফটো জন্য বাইনারি ডেটা মাধ্যমে অনুরোধ করা হয়েছে মাইক্রোসফট গ্রাফ এপিআই

  6. উপরের উদাহরণগুলোতে উপর ফোকাস করার সময় সাইন-ইন প্রবাহ, এছাড়াও আপনি ব্যবহার করে একটি বিদ্যমান ব্যবহারকারীকে একটি Microsoft নভোনীল সক্রিয় ডিরেক্টরি প্রদানকারী সংযোগ আছে ক্ষমতা আছে LinkWithProvider । উদাহরণস্বরূপ, আপনি একই ব্যবহারকারীর সাথে একাধিক প্রদানকারীকে লিঙ্ক করতে পারেন যাতে তারা তাদের সাথে সাইন ইন করতে পারে।

    firebase::Future<firebase::auth::SignInResult> result = user->LinkWithProvider(provider_data);
    
  7. একই প্যাটার্ন ব্যবহার করা যেতে পারে ReauthenticateWithProvider যা সংবেদনশীল অপারেশন সাম্প্রতিক লগইন করা প্রয়োজন জন্য তাজা পরিচয়পত্র উদ্ধার করতে ব্যবহার করা যাবে।

    firebase::Future<firebase::auth::SignInResult> result =
      user->ReauthenticateWithProvider(provider_data);
    

    আপনার অ্যাপ্লিকেশান তারপর অপেক্ষা করুন বা পারে ভবিষ্যত একটি কলব্যাক করো

পরবর্তী পদক্ষেপ

একজন ব্যবহারকারী প্রথমবার সাইন ইন করার পর, একটি নতুন ব্যবহারকারীর অ্যাকাউন্ট তৈরি করা হয় এবং শংসাপত্রের সাথে সংযুক্ত করা হয় - অর্থাৎ ব্যবহারকারীর নাম এবং পাসওয়ার্ড, ফোন নম্বর, বা স্বাক্ষর প্রদানকারীর তথ্য — ব্যবহারকারী সাইন ইন করেছেন। এই নতুন অ্যাকাউন্টটি আপনার ফায়ারবেস প্রকল্পের অংশ হিসাবে সংরক্ষণ করা হয়েছে এবং ব্যবহারকারী যেভাবে সাইন ইন করুক না কেন আপনার প্রকল্পের প্রতিটি অ্যাপ জুড়ে ব্যবহারকারীকে চিহ্নিত করতে ব্যবহার করা যেতে পারে।

  • আপনার অ্যাপ্লিকেশান, আপনি থেকে ব্যবহারকারীর সাধারণ প্রোফাইল তথ্য পেতে পারেন firebase::auth::User বস্তু:

    firebase::auth::User* user = auth->current_user();
    if (user != nullptr) {
      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 রিয়েলটাইম ডাটাবেস এবং ক্লাউড স্টোরেজ সিকিউরিটি রুলস , আপনি পেতে পারেন সাইন ইন থেকে ব্যবহারকারী এর অনন্য ব্যবহারকারী আইডি auth পরিবর্তনশীল, এবং এটি ব্যবহার কোন ডেটা একটি ব্যবহারকারী অ্যাক্সেস করতে পারবেন নিয়ন্ত্রন করতে পারেন।

আপনি ব্যবহারকারীদের দ্বারা একাধিক প্রমাণীকরণ প্রদানকারীর ব্যবহার করে আপনার অ্যাপ্লিকেশানে সাইন ইন করার অনুমতি দিতে পারেন একটি বিদ্যমান ব্যবহারকারীর অ্যাকাউন্টের সাথে প্রমাণীকরণ প্রদানকারী পরিচয়পত্র লিঙ্ক।

একটি ব্যবহারকারী সাইন আউট করতে, কল SignOut() :

auth->SignOut();