با تأیید اعتبار Firebase در iOS شروع کنید

شما می توانید از احراز هویت Firebase استفاده کنید تا به کاربران اجازه دهید با استفاده از یک یا چند روش ورود به سیستم ، از جمله آدرس ایمیل و رمز ورود ، و ارائه دهندگان هویت فدرال مانند ورود به سیستم Google و ورود به سیستم فیس بوک ، وارد برنامه شما شوند. این آموزش با نشان دادن نحوه افزودن آدرس ایمیل و ورود رمز عبور به برنامه خود ، شما را با احراز هویت Firebase آغاز می کند.

برنامه خود را به Firebase وصل کنید

  1. نصب فایربیس SDK .
  2. در فایربیس کنسول ، اضافه کردن برنامه های خود را به پروژه فایربیس خود را.

احراز هویت Firebase را به برنامه خود اضافه کنید

  1. اضافه کردن وابستگی برای فایربیس احراز هویت را به پروژه خود را Podfile :

    pod 'Firebase/Auth'
    
  2. اجرای pod install و باز کردن ایجاد .xcworkspace فایل.

(اختیاری) نمونه اولیه و آزمایش با Firebase Local Emulator Suite

قبل از صحبت در مورد نحوه احراز هویت برنامه توسط کاربران ، اجازه دهید مجموعه ای از ابزارهایی را که می توانید برای نمونه اولیه و آزمایش عملکرد احراز هویت استفاده کنید ، معرفی کنیم: Firebase Local Emulator Suite. اگر تصمیم دارید بین تکنیک ها و ارائه دهندگان احراز هویت تصمیم بگیرید ، مدل های مختلف داده با داده های عمومی و خصوصی را با استفاده از احراز هویت و قوانین امنیتی Firebase یا نمونه سازی طرح های UI ورود به سیستم ، امکان کار در محلی بدون استقرار خدمات زنده می تواند ایده خوبی باشد. به

شبیه ساز احراز هویت بخشی از مجموعه شبیه ساز محلی است که برنامه شما را قادر می سازد تا با محتوا و پیکربندی پایگاه داده شبیه سازی شده و همچنین منابع پروژه شما (عملکردها ، پایگاه های داده دیگر و قوانین امنیتی) به صورت اختیاری تعامل داشته باشد.

استفاده از شبیه ساز احراز هویت شامل چند مرحله است:

  1. افزودن یک خط کد به پیکربندی آزمایشی برنامه خود برای اتصال به شبیه ساز.
  2. از ریشه دایرکتوری پروژه های محلی خود را، در حال اجرا firebase emulators:start .
  3. استفاده از رابط کاربری Local Emulator Suite برای نمونه سازی تعاملی یا API شبیه ساز احراز هویت REST API برای آزمایش غیر تعاملی.

راهنمای مفصل در دسترس است اتصال برنامه خود را به شبیه ساز احراز هویت . برای اطلاعات بیشتر، نگاه کنید به مقدمه محلی شبیه ساز سوئیت .

اکنون بیایید به نحوه احراز هویت کاربران ادامه دهیم.

SDK Firebase را اولیه کنید

در نماینده برنامه خود ، ابتدا SDK Firebase را وارد کنید:

سریع

import Firebase

هدف-ج

@import Firebase;

سپس، در application:didFinishLaunchingWithOptions: روش، مقداردهی اولیه FirebaseApp شی:

سریع

// Use Firebase library to configure APIs
FirebaseApp.configure()

هدف-ج

// Use Firebase library to configure APIs
[FIRApp configure];

به وضعیت احراز هویت گوش دهید

برای هر یک از دیدگاه های برنامه خود را که اطلاعات نیاز در مورد کاربر وارد شده به، ضمیمه یک شنونده به FIRAuth شی. هر زمان که وضعیت ورود به سیستم کاربر تغییر کند ، این شنونده تماس می گیرد.

ضمیمه شنونده در کنترل نگاه را viewWillAppear روش:

سریع

handle = Auth.auth().addStateDidChangeListener { auth, user in
  // ...
}

هدف-ج

self.handle = [[FIRAuth auth]
    addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) {
      // ...
    }];

و جدا شنونده در کنترل نگاه را viewWillDisappear روش:

سریع

Auth.auth().removeStateDidChangeListener(handle!)

هدف-ج

[[FIRAuth auth] removeAuthStateDidChangeListener:_handle];

ثبت نام کاربران جدید

یک فرم ایجاد کنید که به کاربران جدید اجازه دهد با استفاده از آدرس ایمیل و رمز عبور خود در برنامه شما ثبت نام کنند. هنگامی که یک کاربر کامل فرم، اعتبار آدرس ایمیل و رمز عبور ارائه شده توسط کاربر، سپس آنها را تصویب به createUser روش:

سریع

Auth.auth().createUser(withEmail: email, password: password) { authResult, error in
  // ...
}

هدف-ج

[[FIRAuth auth] createUserWithEmail:email
                           password:password
                         completion:^(FIRAuthDataResult * _Nullable authResult,
                                      NSError * _Nullable error) {
  // ...
}];

ورود کاربران فعلی

یک فرم ایجاد کنید که به کاربران موجود اجازه دهد با استفاده از آدرس ایمیل و رمز عبور خود وارد سیستم شوند. هنگامی که یک کاربر کامل شکل، با signIn روش:

سریع

Auth.auth().signIn(withEmail: email, password: password) { [weak self] authResult, error in
  guard let strongSelf = self else { return }
  // ...
}

هدف-ج

[[FIRAuth auth] signInWithEmail:self->_emailField.text
                       password:self->_passwordField.text
                     completion:^(FIRAuthDataResult * _Nullable authResult,
                                  NSError * _Nullable error) {
  // ...
}];

دریافت اطلاعات کاربر

پس از ورود کاربر با موفقیت ، می توانید اطلاعات مربوط به کاربر را دریافت کنید. برای مثال، در خود شنونده دولت احراز هویت :

سریع

if let user = user {
  // 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 getTokenWithCompletion:completion: instead.
  let uid = user.uid
  let email = user.email
  let photoURL = user.photoURL
  var multiFactorString = "MultiFactor: "
  for info in user.multiFactor.enrolledFactors {
    multiFactorString += info.displayName ?? "[DispayName]"
    multiFactorString += " "
  }
  // ...
}

هدف-ج

if (user) {
  // 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 getTokenWithCompletion:completion: instead.
  NSString *email = user.email;
  NSString *uid = user.uid;
  NSMutableString *multiFactorString = [NSMutableString stringWithFormat:@"MultiFactor: "];
  for (FIRMultiFactorInfo *info in user.multiFactor.enrolledFactors) {
    [multiFactorString appendString:info.displayName];
    [multiFactorString appendString:@" "];
  }
  NSURL *photoURL = user.photoURL;
  // ...
}

مراحل بعدی

نحوه افزودن پشتیبانی برای سایر ارائه دهندگان هویت و حسابهای مهمان ناشناس را بیاموزید: