احراز هویت با Firebase با استفاده از حساب های مبتنی بر رمز عبور در Flutter

می‌توانید از Firebase Authentication استفاده کنید تا به کاربران خود اجازه دهید با استفاده از آدرس‌های ایمیل و رمزهای عبور با Firebase احراز هویت کنند.

قبل از شروع

  1. اگر قبلاً این کار را نکرده‌اید، مراحل راهنمای شروع کار را دنبال کنید.

  2. فعال کردن ورود به سیستم ایمیل/گذرواژه:

    • در بخش تأیید هویت کنسول Firebase، صفحه روش ورود به سیستم را باز کنید.
    • از صفحه روش ورود به سیستم ، روش ورود به سیستم ایمیل/رمز عبور را فعال کنید و روی ذخیره کلیک کنید.

یک حساب کاربری مبتنی بر رمز عبور ایجاد کنید

برای ایجاد یک حساب کاربری جدید با رمز عبور، متد createUserWithEmailAndPassword() را فراخوانی کنید:

try {
  final credential = await FirebaseAuth.instance.createUserWithEmailAndPassword(
    email: emailAddress,
    password: password,
  );
} on FirebaseAuthException catch (e) {
  if (e.code == 'weak-password') {
    print('The password provided is too weak.');
  } else if (e.code == 'email-already-in-use') {
    print('The account already exists for that email.');
  }
} catch (e) {
  print(e);
}

به طور معمول، این کار را از صفحه ثبت نام برنامه خود انجام می دهید. وقتی کاربر جدیدی با استفاده از فرم ثبت‌نام برنامه شما ثبت‌نام می‌کند، مراحل اعتبارسنجی حساب جدیدی را که برنامه شما نیاز دارد، تکمیل کنید، مانند تأیید اینکه رمز عبور حساب جدید به درستی تایپ شده است و شرایط پیچیدگی شما را برآورده می‌کند.

اگر حساب جدید با موفقیت ایجاد شد، کاربر نیز وارد سیستم شده است. اگر به تغییرات در وضعیت احراز هویت گوش می دهید، رویداد جدیدی برای شنوندگان شما ارسال می شود.

به عنوان ادامه ایجاد یک حساب کاربری جدید، می توانید آدرس ایمیل کاربر را تأیید کنید .

یک کاربر با آدرس ایمیل و رمز عبور وارد شوید

مراحل ورود کاربر با رمز عبور مشابه مراحل ایجاد یک حساب کاربری جدید است. از صفحه ورود به سیستم برنامه خود، signInWithEmailAndPassword() را صدا کنید:

try {
  final credential = await FirebaseAuth.instance.signInWithEmailAndPassword(
    email: emailAddress,
    password: password
  );
} on FirebaseAuthException catch (e) {
  if (e.code == 'user-not-found') {
    print('No user found for that email.');
  } else if (e.code == 'wrong-password') {
    print('Wrong password provided for that user.');
  }
}

مراحل بعدی

پس از اینکه کاربر یک حساب جدید ایجاد کرد، این حساب به عنوان بخشی از پروژه Firebase شما ذخیره می‌شود و می‌توان از آن برای شناسایی کاربر در هر برنامه در پروژه‌تان استفاده کرد، صرف نظر از اینکه کاربر از چه روش ورود به سیستم استفاده کرده است.

در برنامه های خود، می توانید اطلاعات اولیه نمایه کاربر را از شی User دریافت کنید. به مدیریت کاربران مراجعه کنید.

در قوانین امنیتی Firebase Realtime Database و Cloud Storage، می‌توانید شناسه کاربری منحصر به فرد کاربر واردشده را از متغیر auth دریافت کنید و از آن برای کنترل داده‌هایی که کاربر می‌تواند به آن دسترسی داشته باشد استفاده کنید.

می‌توانید به کاربران اجازه دهید با استفاده از چندین ارائه‌دهنده احراز هویت، با پیوند دادن اعتبار ارائه‌دهنده تأیید هویت به یک حساب کاربری موجود، به برنامه شما وارد شوند.

برای خروج از سیستم کاربر، signOut() را فراخوانی کنید:

await FirebaseAuth.instance.signOut();