Catch up on everthing we announced at this year's Firebase Summit. Learn more

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

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

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

  1. আপনার সি ++ প্রকল্পে Firebase যোগ করুন
  2. ইন Firebase কনসোল , প্রমাণীকরণ অধ্যায় খুলুন।
  3. পদ্ধতি ট্যাবে সাইন অন, ইয়াহু প্রদানকারী সক্রিয় করুন।
  4. ক্লায়েন্ট আইডি এবং যে প্রদানকারীর ডেভেলপার প্রদানকারী কনফিগারেশন কনসোল থেকে ক্লায়েন্ট সিক্রেট যোগ করুন
    1. একটি ইয়াহু OAuth ক্লায়েন্ট নিবন্ধন করতে, উপর ইয়াহু ডেভেলপার ডকুমেন্টেশন অনুসরণ ইয়াহু সঙ্গে একটি ওয়েব অ্যাপ্লিকেশন নিবন্ধনের

      : দুই থেকে OpenID এপিআই অনুমতি নির্বাচন করার বিষয়ে নিশ্চিত হন profile এবং email

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

Firebase SDK দিয়ে সাইন-ইন ফ্লো পরিচালনা করুন

Firebase SDK-এর সাথে সাইন-ইন প্রবাহ পরিচালনা করতে, এই ধাপগুলি অনুসরণ করুন:

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

    firebase::auth::FederatedOAuthProviderData
        provider_data(firebase::auth::YahooAuthProvider::kProviderId);
    
  2. ঐচ্ছিক: অতিরিক্ত কাস্টম OAuth এর পরামিতি উল্লেখ করুন যে আপনি যদি OAuth অনুরোধ পাঠাতে চাই।

    // Prompt user to re-authenticate to Yahoo.
    provider_data.custom_parameters["prompt"] = "login";
    
    // Localize to French.
    provider_data.custom_parameters["language"] = "fr";
    

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

  3. ঐচ্ছিক: পরলোক 2.0 সুযোগ উল্লেখ অতিরিক্ত OAuth এর profile এবং email আপনি প্রমাণীকরণ প্রদানকারীর থেকে অনুরোধ করতে চাই। আপনার আবেদন ইয়াহু API গুলি থেকে ব্যক্তিগত ব্যবহারকারীর তথ্য অ্যাক্সেস করতে থাকে, তাহলে আপনি ইয়াহু ডেভেলপার কনসোল-এ এপিআই অনুমতিসমূহ অধীনে ইয়াহু API গুলি করার অনুরোধ অনুমতির প্রয়োজন হবে। অনুরোধ করা OAuth স্কোপগুলিকে অবশ্যই অ্যাপের API অনুমতিগুলিতে প্রি-কনফিগার করাগুলির সাথে হুবহু মিলে যেতে হবে। উদাহরণস্বরূপ, যদি, পড়া / লেখা অ্যাক্সেস ইউজার পরিচিতি করার জন্য অনুরোধ করা এবং অ্যাপ্লিকেশান এর API- অনুমতি পূর্বে কনফিগার করা হয় sdct-w কেবলমাত্র OAuth স্কোপ পরিবর্তে পাস করা হয়েছে sdct-r । অন্যথায়, প্রবাহ ব্যর্থ হবে এবং শেষ ব্যবহারকারীকে একটি ত্রুটি দেখানো হবে।

    // Request access to Yahoo Mail API.
    provider_data.scopes.push_back("mail-r");
    // This must be preconfigured in the app's API permissions.
    provider_data.scopes.push_back("sdct-w");
    

    আরো জানতে, পড়ুন ইয়াহু সুযোগ ডকুমেন্টেশন

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

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

  6. উপরের উদাহরণগুলোতে উপর ফোকাস করার সময় সাইন-ইন প্রবাহ, এছাড়াও আপনি ব্যবহার করে একটি বিদ্যমান ব্যবহারকারী করার জন্য একটি ইয়াহু প্রদানকারী সংযোগ আছে ক্ষমতা আছে 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();