আইওএসে টুইটার ব্যবহার করে প্রমাণীকরণ করুন

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

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

টুইটার অ্যাকাউন্ট ব্যবহার করে ব্যবহারকারীদের সাইন ইন করতে, আপনাকে প্রথমে আপনার ফায়ারবেস প্রকল্পের জন্য সাইন-ইন প্রদানকারী হিসেবে টুইটার সক্ষম করতে হবে:

  1. আপনার iOS প্রকল্পে Firebase যোগ করুন

  2. আপনার নিম্নলিখিত pods অন্তর্ভুক্ত করুন Podfile :

    pod 'Firebase/Auth'
    
  3. ইন Firebase কনসোল , প্রমাণীকরণ অধ্যায় খুলুন।
  4. পদ্ধতি ট্যাবে সাইন অন, টুইটার প্রদানকারী সক্রিয় করুন।
  5. যে প্রদানকারীর ডেভেলপার প্রদানকারী কনফিগারেশন কনসোল থেকে API কী এবং API গোপন যোগ করুন
    1. আপনার অ্যাপ নিবন্ধন টুইটারে একজন বিকাশকারী অ্যাপ্লিকেশন হিসেবে এবং আপনার অ্যাপ্লিকেশনের OAuth এর API কী এবং API গোপন পেতে।
    2. নিশ্চিত করুন যে আপনার Firebase OAuth এর পুনর্নির্দেশ কোনো URI (যেমন my-app-12345.firebaseapp.com/__/auth/handler ) আপনার উপর আপনার অ্যাপ্লিকেশনের সেটিংস পৃষ্ঠায় আপনার অনুমোদন কলব্যাক URL হিসেবে সেট করা হয় টুইটার অ্যাপের কনফিগ
  6. সংরক্ষণ ক্লিক করুন।

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

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

  1. আপনার Xcode প্রকল্পে কাস্টম URL স্কিম যুক্ত করুন:

    1. আপনার প্রকল্প কনফিগারেশন খুলুন: বাম গাছের ভিউতে প্রকল্পের নামটিতে ডাবল ক্লিক করুন। ও লক্ষ্যমাত্রা অধ্যায় থেকে আপনার অ্যাপ্লিকেশন নির্বাচন করুন তারপর তথ্য ট্যাব বাছুন এবং URL প্রকারভেদ অধ্যায় প্রসারিত।
    2. + বোতামে ক্লিক করুন, এবং আপনার বিপরীত ক্লায়েন্ট ID জন্য একটি URL স্কিম যোগ করুন। এই মান খুঁজতে, খুলতে GoogleService-Info.plist কনফিগারেশন ফাইল, এবং বর্ণন REVERSED_CLIENT_ID কী। যে কী মান অনুলিপি করুন, এবং এটি URL টি প্রকল্প কনফিগারেশন পৃষ্ঠাতে বাক্সে আটকে দিন। অন্যান্য ক্ষেত্র খালি রাখুন।

      সম্পন্ন হলে, আপনার কনফিগারেশনটি নিম্নলিখিতগুলির মতো দেখতে হবে (তবে আপনার অ্যাপ্লিকেশন-নির্দিষ্ট মানগুলির সাথে):

  2. একটি OAuthProvider প্রদানকারী আইডি twitter.com ব্যবহারের একটি দৃষ্টান্ত তৈরি করুন।

    সুইফট

        var provider = OAuthProvider(providerID: "twitter.com")
        

    উদ্দেশ্য গ

        FIROAuthProvider *provider = [FIROAuthProvider providerWithProviderID:@"twitter.com"];
        
  3. ঐচ্ছিক: অতিরিক্ত কাস্টম OAuth এর পরামিতি উল্লেখ করুন যে আপনি যদি OAuth অনুরোধ পাঠাতে চাই।

    সুইফট

        provider.customParameters = [
          "lang": "fr"
          ]
        

    উদ্দেশ্য গ

        [provider setCustomParameters:@{@"lang": @"fr"}];
        

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

  4. ঐচ্ছিক: যেভাবে আপনার অ্যাপ উপহার কাস্টমাইজ করতে চান SFSafariViewController বা UIWebView যখন ব্যবহারকারীকে তথ্যের প্রদর্শন করার একটি কাস্টম বর্গ যে কে কনর্ফাম করে তৈরি FIRAuthUIDelegate প্রোটোকল, এবং এটা পাস getCredentialWithUIDelegate:completion:

  5. OAuth প্রদানকারী বস্তু ব্যবহার করে ফায়ারবেস দিয়ে প্রমাণীকরণ করুন।

    সুইফট

        provider.getCredentialWith(nil) { credential, error in
          if error != nil {
            // Handle error.
          }
          if credential != nil {
            Auth.auth().signIn(with: credential) { authResult, error in
              if error != nil {
                // Handle error.
              }
              // User is signed in.
              // IdP data available in authResult.additionalUserInfo.profile.
              // Twitter OAuth access token can also be retrieved by:
              // authResult.credential.accessToken
              // Twitter OAuth ID token can be retrieved by calling:
              // authResult.credential.idToken
              // Twitter OAuth secret can be retrieved by calling:
              // authResult.credential.secret
            }
          }
        }
        

    উদ্দেশ্য গ

        [provider getCredentialWithUIDelegate:nil
                                   completion:^(FIRAuthCredential *_Nullable credential, NSError *_Nullable error) {
          if (error) {
           // Handle error.
          }
          if (credential) {
            [[FIRAuth auth] signInWithCredential:credential
                                      completion:^(FIRAuthDataResult *_Nullable authResult, NSError *_Nullable error) {
              if (error) {
                // Handle error.
              }
              // User is signed in.
              // IdP data available in authResult.additionalUserInfo.profile.
              // Twitter OAuth access token can also be retrieved by:
              // authResult.credential.accessToken
              // Twitter OAuth ID token can be retrieved by calling:
              // authResult.credential.idToken
              // Twitter OAuth secret can be retrieved by calling:
              // authResult.credential.secret
            }];
          }
        }];
        

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

    উদাহরণস্বরূপ, সাধারণ প্রোফাইল তথ্য পেতে, তুমি কী বিশ্রাম এপিআই, কল অ্যাক্সেস IN টোকেন পাশ করতে Authorization শিরোলেখ:

    https://api.twitter.com/labs/1/users?usernames=TwitterDev
    
  6. যদিও উপরের উদাহরণগুলি সাইন-ইন প্রবাহের উপর দৃষ্টি নিবদ্ধ করে, আপনার একটি টুইটার সরবরাহকারীকে বিদ্যমান ব্যবহারকারীর সাথে সংযুক্ত করার ক্ষমতাও রয়েছে। উদাহরণস্বরূপ, আপনি একই ব্যবহারকারীর সাথে একাধিক প্রদানকারীকে লিঙ্ক করতে পারেন যাতে তারা তাদের সাথে সাইন ইন করতে পারে।

    সুইফট

        Auth().currentUser.link(withCredential: credential) { authResult, error in
          if error != nil {
            // Handle error.
          }
          // Twitter credential is linked to the current user.
          // IdP data available in authResult.additionalUserInfo.profile.
          // Twitter OAuth access token can also be retrieved by:
          // authResult.credential.accessToken
          // Twitter OAuth ID token can be retrieved by calling:
          // authResult.credential.idToken
          // Twitter OAuth secret can be retrieved by calling:
          // authResult.credential.secret
        }
        

    উদ্দেশ্য গ

        [[FIRAuth auth].currentUser
            linkWithCredential:credential
                    completion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) {
          if (error) {
            // Handle error.
          }
          // Twitter credential is linked to the current user.
          // IdP data available in authResult.additionalUserInfo.profile.
          // Twitter OAuth access token is can also be retrieved by:
          // authResult.credential.accessToken
          // Twitter OAuth ID token can be retrieved by calling:
          // authResult.credential.idToken
          // Twitter OAuth secret can be retrieved by calling:
          // authResult.credential.secret
        }];
        
  7. একই প্যাটার্ন ব্যবহার করা যেতে পারে reauthenticateWithCredential যা সংবেদনশীল অপারেশন সাম্প্রতিক লগইন করা প্রয়োজন জন্য তাজা পরিচয়পত্র উদ্ধার করতে ব্যবহার করা যাবে।

    সুইফট

        Auth().currentUser.reauthenticateWithCredential(withCredential: credential) { authResult, error in
          if error != nil {
            // Handle error.
          }
          // User is re-authenticated with fresh tokens minted and
          // should be able to perform sensitive operations like account
          // deletion and email or password update.
          // IdP data available in result.additionalUserInfo.profile.
          // Additional OAuth access token is can also be retrieved by:
          // authResult.credential.accessToken
          // Twitter OAuth ID token can be retrieved by calling:
          // authResult.credential.idToken
          // Twitter OAuth secret can be retrieved by calling:
          // authResult.credential.secret
        }
        

    উদ্দেশ্য গ

        [[FIRAuth auth].currentUser
            reauthenticateWithCredential:credential
                              completion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) {
          if (error) {
            // Handle error.
          }
          // User is re-authenticated with fresh tokens minted and
          // should be able to perform sensitive operations like account
          // deletion and email or password update.
          // IdP data available in result.additionalUserInfo.profile.
          // Additional OAuth access token is can also be retrieved by:
          // authResult.credential.accessToken
          // Twitter OAuth ID token can be retrieved by calling:
          // authResult.credential.idToken
          // Twitter OAuth secret can be retrieved by calling:
          // authResult.credential.secret
        }];
        

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

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

  • আপনার অ্যাপ্লিকেশান, আপনি থেকে ব্যবহারকারীর সাধারণ প্রোফাইল তথ্য পেতে পারেন FIRUser অবজেক্ট। দেখুন ব্যবহারকারীদের পরিচালনা

  • আপনার Firebase রিয়েলটাইম ডাটাবেস এবং ক্লাউড স্টোরেজ সিকিউরিটি রুলস , আপনি পেতে পারেন সাইন ইন থেকে ব্যবহারকারী এর অনন্য ব্যবহারকারী আইডি auth পরিবর্তনশীল, এবং এটি ব্যবহার কোন ডেটা একটি ব্যবহারকারী অ্যাক্সেস করতে পারবেন নিয়ন্ত্রন করতে পারেন।

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

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

সুইফট

    let firebaseAuth = Auth.auth()
do {
  try firebaseAuth.signOut()
} catch let signOutError as NSError {
  print("Error signing out: %@", signOutError)
}
  

উদ্দেশ্য গ

    NSError *signOutError;
BOOL status = [[FIRAuth auth] signOut:&signOutError];
if (!status) {
  NSLog(@"Error signing out: %@", signOutError);
  return;
}

আপনি প্রমাণীকরণের ত্রুটির সম্পূর্ণ পরিসরের জন্য ত্রুটি পরিচালনা কোড যোগ করতে চাইতে পারেন। দেখুন হাতল ত্রুটি