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

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

قبل از اینکه شروع کنی

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

  2. فعال کردن ورود با ایمیل/رمز عبور:

    • در بخش احراز هویت (Authentication) کنسول فایربیس، صفحه متد ورود (Sign in method) را باز کنید.
    • از صفحه روش ورود ، روش ورود با ایمیل/رمز عبور را فعال کرده و روی ذخیره کلیک کنید.

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

برای ایجاد یک حساب کاربری جدید با رمز عبور، متد 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، می‌توانید شناسه کاربری منحصر به فرد کاربر وارد شده را از متغیر auth دریافت کنید و از آن برای کنترل داده‌هایی که کاربر می‌تواند به آنها دسترسی داشته باشد، استفاده کنید.

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

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

await FirebaseAuth.instance.signOut();