অ্যাপল এবং ityক্য ব্যবহার করে প্রমাণীকরণ করুন

আপনি আপনার ব্যবহারকারীদের ফায়ারবেস এসডিকে ব্যবহার করে শেষ থেকে শেষ OAuth 2.0 সাইন-ইন প্রবাহ চালিয়ে যেতে তাদের অ্যাপল আইডি ব্যবহার করে ফায়ারবেস দিয়ে প্রমাণীকরণ করতে পারেন let

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

অ্যাপল ব্যবহার করে ব্যবহারকারীদের সাইন ইন করতে প্রথমে অ্যাপলের বিকাশকারী সাইটে অ্যাপলের সাথে সাইন ইন কনফিগার করুন, তারপরে অ্যাপলটিকে আপনার ফায়ারবেস প্রকল্পের সাইন ইন সরবরাহকারী হিসাবে সক্ষম করুন।

অ্যাপল বিকাশকারী প্রোগ্রামে যোগদান করুন

সাইন ইন অ্যাপল শুধুমাত্র সদস্য কনফিগার করা যেতে পারে অ্যাপল বিকাশকারী প্রোগ্রাম

অ্যাপলের সাথে সাইন ইন কনফিগার করুন

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

সাইন ইন সরবরাহকারী হিসাবে অ্যাপল সক্ষম করুন

  1. ইন Firebase কনসোল , প্রমাণীকরণ অধ্যায় খুলুন। পদ্ধতি ট্যাবে সাইন অন অ্যাপল প্রদানকারী সক্রিয় করুন।
  2. অ্যাপল সাইন ইন সরবরাহকারী সেটিংস কনফিগার করুন:
    1. আপনি যদি কেবলমাত্র আইওএস-এ আপনার অ্যাপ্লিকেশন স্থাপন করছেন তবে আপনি পরিষেবা আইডি, অ্যাপল টিম আইডি, ব্যক্তিগত কী এবং কী আইডি ক্ষেত্রগুলি খালি রাখতে পারেন।
    2. অ্যান্ড্রয়েড ডিভাইসে সহায়তার জন্য:
      1. আপনার অ্যান্ড্রয়েড প্রকল্পের Firebase যোগ করুন । আপনি ফায়ারবেস কনসোলে আপনার অ্যাপ্লিকেশনটি সেট আপ করার সময় আপনার অ্যাপের SHA-1 স্বাক্ষরটি নিবন্ধন করতে ভুলবেন না sure
      2. ইন Firebase কনসোল , প্রমাণীকরণ অধ্যায় খুলুন। পদ্ধতি ট্যাবে সাইন অন অ্যাপল প্রদানকারী সক্রিয় করুন। আপনি পূর্ববর্তী বিভাগে তৈরি পরিষেবা আইডি উল্লেখ করুন। এছাড়াও, OAuth কোড ফ্লো কনফিগারেশন বিভাগে, আপনার অ্যাপল টিম আইডি এবং আপনি পূর্ববর্তী বিভাগে তৈরি করা ব্যক্তিগত কী এবং কী আইডি উল্লেখ করুন।

অ্যাপল বেনামেযুক্ত ডেটা প্রয়োজনীয়তা মেনে চলুন

এই অপশনটি নির্বাচন সঙ্গে অ্যাপল ব্যবহারকারীদের তাদের ইমেল ঠিকানা সহ সেগুলির ডেটা, anonymizing সাইন ইন করার সময় বিকল্প দেয় সাইন ইন করুন। ব্যবহারকারীরা ডোমেনের সাথে ইমেল ঠিকানা রয়েছে privaterelay.appleid.com । আপনি যখন আপনার অ্যাপ্লিকেশনটিতে অ্যাপলের সাথে সাইন ইন ব্যবহার করেন, আপনাকে অবশ্যই এই বেনামে প্রকাশিত অ্যাপল আইডি সম্পর্কিত অ্যাপল এর যে কোনও প্রযোজ্য বিকাশকারী নীতি বা শর্তাবলী মেনে চলতে হবে।

এটি কোনও অনামী অ্যাপল আইডির সাথে সরাসরি কোনও সনাক্তকারী ব্যক্তিগত তথ্য যুক্ত করার আগে কোনও প্রয়োজনীয় ব্যবহারকারীর সম্মতি অর্জনের অন্তর্ভুক্ত রয়েছে। ফায়ারবেস প্রমাণীকরণ ব্যবহার করার সময়, এটিতে নিম্নলিখিত ক্রিয়াগুলি অন্তর্ভুক্ত থাকতে পারে:

  • কোনও বেনামে থাকা অ্যাপল আইডি বা বিপরীতে কোনও ইমেল ঠিকানা লিঙ্ক করুন।
  • কোনও অজ্ঞাতনামা অ্যাপল আইডি বা বিপরীতে কোনও ফোন নম্বর লিঙ্ক করুন
  • কোনও অজ্ঞাতনামা সামাজিক শংসাপত্র (ফেসবুক, গুগল, ইত্যাদি) কোনও অনামী অ্যাপল আইডি বা এর বিপরীতে লিঙ্ক করুন।

উপরের তালিকায় সম্পূর্ণ নয়। আপনার অ্যাপল অ্যাপলের প্রয়োজনীয়তা পূরণ করে তা নিশ্চিত করতে আপনার বিকাশকারী অ্যাকাউন্টের সদস্যপদ বিভাগে অ্যাপল বিকাশকারী প্রোগ্রাম লাইসেন্স চুক্তিটি দেখুন।

অ্যাক্সেস করুন Firebase.Auth.FirebaseAuth বর্গ

FirebaseAuth বর্গ সব API কল জন্য গেটওয়ে। এটা মাধ্যমে accessable হয় FirebaseAuth.DefaultInstance
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;

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

অ্যাপল সহ সাইন-ইন করার প্রক্রিয়াটি আইওএস এবং অ্যান্ড্রয়েড প্ল্যাটফর্মগুলিতে পরিবর্তিত হয়।

আইওএস-এ

  1. কোনো তৃতীয় পক্ষ যেমন আপাতত এবং টোকেন প্রজন্মের অ্যাপল চিহ্ন হ্যান্ডেল করতে, প্লাগইন ইনস্টল করুন আপেল সঙ্গে অ্যাসেট সংগ্রহস্থল প্যাকেজের মধ্যে ঐক্য সাইন । ফায়ারবেস ক্রিয়াকলাপগুলিতে ব্যবহারের জন্য উত্পাদিত এলোমেলো ননস স্ট্রিংটিকে কাঁচা স্ট্রিং অবস্থায় প্লাম্ব করার জন্য আপনার কোডটি পরিবর্তন করতে হতে পারে (যা, ননসের SHA256 ডাইজেস্ট ফর্মটি তৈরি হওয়ার আগে এর একটি অনুলিপি সংরক্ষণ করুন)।

  2. ফায়ারবেস শংসাপত্র তৈরি করতে এবং ফায়ারবেসে সাইন ইন করতে ফলাফল টোকেন স্ট্রিং এবং কাঁচা নন ব্যবহার করুন।

    Firebase.Auth.Credential credential =
        Firebase.Auth.OAuthProvider.GetCredential("apple.com", appleIdToken, rawNonce, null);
    auth.SignInWithCredentialAsync(credential).ContinueWith(task => {
      if (task.IsCanceled) {
        Debug.LogError("SignInWithCredentialAsync was canceled.");
        return;
      }
      if (task.IsFaulted) {
        Debug.LogError("SignInWithCredentialAsync encountered an error: " + task.Exception);
        return;
      }
    
      Firebase.Auth.FirebaseUser newUser = task.Result;
      Debug.LogFormat("User signed in successfully: {0} ({1})",
          newUser.DisplayName, newUser.UserId);
    });
    

  3. একই প্যাটার্ন ব্যবহার করা যেতে পারে ReauthenticateAsync যা সংবেদনশীল অপারেশন সাম্প্রতিক লগইন করা প্রয়োজন জন্য তাজা পরিচয়পত্র উদ্ধার করতে ব্যবহার করা যাবে। আরও তথ্যের জন্য দেখুন পরিচালনা ব্যবহারকারীরা

  4. আইওজে অ্যাপল সাইন ইনটির সাথে সংযোগ করার সময় আপনি একটি ত্রুটির মুখোমুখি হতে পারেন যে একটি বিদ্যমান ফায়ারবেস অ্যাকাউন্ট ইতিমধ্যে অ্যাপল অ্যাকাউন্টের সাথে লিঙ্ক করা হয়েছে। এই পরিস্থিতিতে একটি Firebase.Auth.FirebaseAccountLinkException মান পরিবর্তে ফেলে দেওয়া হবে Firebase.FirebsaeException । ব্যতিক্রম একটি অন্তর্ভুক্ত UserInfo.UpdatedCredential সম্পত্তি যে, বৈধ, তাহলে সাইন ইন মাধ্যমে অ্যাপল সংযুক্ত ব্যবহারকারী ব্যবহার করা যেতে পারে FirebaseAuth.SignInWithCredential । আপডেট হওয়া শংসাপত্রটি সাইন ইন অপারেশনের জন্য নোকসের সাথে নতুন অ্যাপল সাইন-ইন টোকেন তৈরি করার প্রয়োজনীয়তাকে অস্বীকার করে।

    লক্ষ্য করুন LinkWithCredentialAsync মান নিক্ষেপ অব্যাহত থাকবে Firebase.FirebaseException লিংক ব্যর্থতা উপর, এবং সেইজন্য একটি আপডেট ক্রেডেনশিয়াল ফিরে অসমর্থ হয়।

    auth.CurrentUser.LinkAndRetrieveDataWithCredentialAsync(
      Firebase.Auth.OAuthProvider.GetCredential("apple.com", idToken, rawNonce, null))
        .ContinueWithOnMainThread( task => {
          if (task.IsCompleted) {
            // Link Success
          } else {
            if (task.Exception != null) {
              foreach (Exception exception in task.Exception.Flatten().InnerExceptions) {
                Firebase.Auth.FirebaseAccountLinkException firebaseEx =
                  exception as Firebase.Auth.FirebaseAccountLinkException;
                if (firebaseEx != null && firebaseEx.UserInfo.UpdatedCredential.IsValid()) {
                  // Attempt to sign in with the updated credential.
                  auth.SignInWithCredentialAsync(firebaseEx.UserInfo.UpdatedCredential).
                    ContinueWithOnMainThread( signInTask => {
                      // Handle Sign in result.
                    });
                } else {
                  DebugLog("Link with Apple failed:" + firebaseEx );
                }
              } // end for loop
            }
          }
        });
    

অ্যান্ড্রয়েডে

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

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

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

    Firebase.Auth.FederatedOAuthProviderData providerData =
      new Firebase.Auth.FederatedOAuthProviderData();
    
    providerData.ProviderId = "apple.com";
    
  2. ঐচ্ছিক: আপনি প্রমাণীকরণ প্রদানকারীর থেকে অনুরোধ করতে চান ডিফল্ট পরলোক 2.0 সুযোগ উল্লেখ অতিরিক্ত OAuth এর।

    providerData.Scopes = new List<string>();
    providerData.Scopes.Add("email");
    providerData.Scopes.Add("name");
    
  3. ঐচ্ছিক: আপনি ইংরেজী ছাড়া অন্য একটি ভাষায় অ্যাপলের সাইন-ইন স্ক্রিনে প্রদর্শন করতে চান তাহলে, সেট locale প্যারামিটার। দেখুন সাইন অ্যাপল ডক্সের সঙ্গে সালে সমর্থিত লোকেলের জন্য।

    providerData.CustomParameters = new Dictionary<string,string>;
    
    // Localize to French.
    providerData.CustomParameters.Add("language", "fr");
    
  4. একবার আপনার সরবরাহকারীর ডেটা কনফিগার হয়ে গেলে, এটি ফেডারেটেডঅউথপ্রোভিডার তৈরি করতে ব্যবহার করুন।

    // Construct a FederatedOAuthProvider for use in Auth methods.
    Firebase.Auth.FederatedOAuthProvider provider =
      new Firebase.Auth.FederatedOAuthProvider();
    provider.SetProviderData(providerData);
    
  5. অথর সরবরাহকারী অবজেক্টটি ব্যবহার করে ফায়ারবেস দিয়ে প্রমাণীকরণ করুন। নোট করুন যে অন্য ফায়ারব্যাসঅথ অপারেশনগুলির বিপরীতে, এটি কোনও ওয়েব ভিউ পপ করে আপনার ইউআই-এর নিয়ন্ত্রণ নেবে যেখানে ব্যবহারকারী তাদের শংসাপত্রগুলি প্রবেশ করতে পারে।

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

    auth.SignInWithProviderAsync(provider).ContinueOnMainThread(task => {
        if (task.IsCanceled) {
            Debug.LogError("SignInWithProviderAsync was canceled.");
            return;
        }
        if (task.IsFaulted) {
            Debug.LogError("SignInWithProviderAsync encountered an error: " +
              task.Exception);
            return;
        }
    
        Firebase.Auth.SignInResult signInResult = task.Result;
        Firebase.Auth.FirebaseUser user = signInResult.User;
        Debug.LogFormat("User signed in successfully: {0} ({1})",
            user.DisplayName, user.UserId);
    });
    
  6. একই প্যাটার্ন ব্যবহার করা যেতে পারে ReauthenticateWithProvider যা সংবেদনশীল অপারেশন সাম্প্রতিক লগইন করা প্রয়োজন জন্য তাজা পরিচয়পত্র উদ্ধার করতে ব্যবহার করা যাবে।

    user.ReauthenticateWithProviderAsync(provider).ContinueOnMainThread(task => {
        if (task.IsCanceled) {
            Debug.LogError("ReauthenticateWithProviderAsync was canceled.");
            return;
        }
        if (task.IsFaulted) {
            Debug.LogError(
            "ReauthenticateWithProviderAsync encountered an error: " +
                task.Exception);
            return;
        }
    
        Firebase.Auth.SignInResult signInResult = task.Result;
        Firebase.Auth.FirebaseUser user = signInResult.User;
        Debug.LogFormat("User reauthenticated successfully: {0} ({1})",
            user.DisplayName, user.UserId);
    });
    
  7. এবং, আপনি ব্যবহার করতে পারেন linkWithCredential() বিদ্যমান অ্যাকাউন্টে বিভিন্ন পরিচিতি প্রদানকারীদের লিঙ্ক করতে।

    নোট করুন যে অ্যাপলের অ্যাকাউন্টগুলির অন্য ডেটাতে লিঙ্ক করার আগে অ্যাপলের আপনার ব্যবহারকারীদের থেকে স্পষ্ট সম্মতি নেওয়া দরকার।

    উদাহরণস্বরূপ, বর্তমান ফায়ারবেস অ্যাকাউন্টে একটি ফেসবুক অ্যাকাউন্ট লিঙ্ক করতে, ব্যবহারকারীকে ফেসবুকে সাইন ইন করার মাধ্যমে আপনি যে অ্যাক্সেস টোকেনটি পেয়েছেন তা ব্যবহার করুন:

    // Initialize a Facebook credential with a Facebook access token.
    
    Firebase.Auth.Credential credential =
        Firebase.Auth.FacebookAuthProvider.GetCredential(facebook_token);
    
    // Assuming the current user is an Apple user linking a Facebook provider.
    user.LinkAndRetrieveDataWithCredentialAsync(credential)
        .ContinueWithOnMainThread( task => {
          if (task.IsCanceled) {
              Debug.LogError("LinkAndRetrieveDataWithCredentialAsync was canceled.");
              return;
          }
          if (task.IsFaulted) {
            Debug.LogError("LinkAndRetrieveDataWithCredentialAsync encountered an error: "
                           + task.Exception);
              return;
          }
    
          Firebase.Auth.SignInResult signInResult = task.Result;
          Firebase.Auth.FirebaseUser user = signInResult.User;
          Debug.LogFormat("User linked successfully: {0} ({1})",
              user.DisplayName, user.UserId);
        });
    

অ্যাপল নোট সহ সাইন ইন করুন

ফায়ারবেস আথ সমর্থিত অন্যান্য সরবরাহকারীদের মতো নয়, অ্যাপল কোনও ফটো ইউআরএল সরবরাহ করে না।

এছাড়াও, ব্যবহারকারী অ্যাপ্লিকেশন, সেই ব্যবহারকারীর (ফর্ম এর জন্য অ্যাপল বিধান একটি অনন্য ইমেল ঠিকানা দিয়ে তাদের ইমেল ভাগ করতে বেছে যখন xyz@privaterelay.appleid.com , যা এটি আপনার অ্যাপের সঙ্গে শেয়ার)। আপনি যদি ব্যক্তিগত ইমেল রিলে পরিষেবাটি কনফিগার করেন তবে অ্যাপল বেনামে পাঠানো ইমেলগুলি ব্যবহারকারীর আসল ইমেল ঠিকানায় ফরোয়ার্ড করে।

যেমন প্রথমবার অ্যাপ্লিকেশনগুলির সাথে প্রদর্শন নাম হিসেবে অ্যাপল শুধুমাত্র শেয়ার ব্যবহারকারীর তথ্য একটি ব্যবহারকারীর লক্ষণ। সাধারণত, Firebase দোকানে প্রদর্শন নাম প্রথমবার অ্যাপল, এটি দিয়ে একটি ব্যবহারকারী লক্ষণ আপনার সাথে পেতে পারেন getCurrentUser().getDisplayName() । তবে, আপনি যদি আগে ফায়ারবেস ব্যবহার না করে অ্যাপলটিতে কোনও ব্যবহারকারীকে সাইন ইন করতে অ্যাপল ব্যবহার করেন তবে অ্যাপল ব্যবহারকারীর প্রদর্শনের নাম ফায়ারবেস সরবরাহ করবে না।

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

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

আপনার অ্যাপ্লিকেশনগুলিতে, আপনি ফায়ারবেস :: অথ :: ব্যবহারকারী অবজেক্ট থেকে ব্যবহারকারীর প্রাথমিক প্রোফাইল তথ্য পেতে পারেন। দেখুন ব্যবহারকারীদের পরিচালনা

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