قم بالمصادقة مع Firebase باستخدام الحسابات المستندة إلى كلمة المرور باستخدام Javascript

يمكنك استخدام مصادقة Firebase للسماح للمستخدمين بالمصادقة مع Firebase باستخدام عناوين البريد الإلكتروني وكلمات المرور الخاصة بهم، ولإدارة الحسابات المستندة إلى كلمة المرور لتطبيقك.

قبل ان تبدأ

  1. أضف Firebase إلى مشروع JavaScript الخاص بك .
  2. إذا لم تكن قد قمت بعد بربط تطبيقك بمشروع Firebase الخاص بك، فقم بذلك من وحدة تحكم Firebase .
  3. تمكين تسجيل الدخول بالبريد الإلكتروني/كلمة المرور:
    1. في وحدة تحكم Firebase ، افتح قسم المصادقة .
    2. في علامة التبويب طريقة تسجيل الدخول ، قم بتمكين طريقة تسجيل الدخول بالبريد الإلكتروني/كلمة المرور وانقر فوق حفظ .

إنشاء حساب يعتمد على كلمة المرور

لإنشاء حساب مستخدم جديد بكلمة مرور، أكمل الخطوات التالية في صفحة الاشتراك في تطبيقك:

  1. عندما يقوم مستخدم جديد بالتسجيل باستخدام نموذج الاشتراك في تطبيقك، أكمل أي خطوات جديدة للتحقق من صحة الحساب يتطلبها تطبيقك، مثل التحقق من كتابة كلمة مرور الحساب الجديد بشكل صحيح وتلبية متطلبات التعقيد الخاصة بك.
  2. قم بإنشاء حساب جديد عن طريق تمرير عنوان البريد الإلكتروني وكلمة المرور للمستخدم الجديد إلى createUserWithEmailAndPassword :

    Web modular API

    import { getAuth, createUserWithEmailAndPassword } from "firebase/auth";
    
    const auth = getAuth();
    createUserWithEmailAndPassword(auth, email, password)
      .then((userCredential) => {
        // Signed up 
        const user = userCredential.user;
        // ...
      })
      .catch((error) => {
        const errorCode = error.code;
        const errorMessage = error.message;
        // ..
      });

    Web namespaced API

    firebase.auth().createUserWithEmailAndPassword(email, password)
      .then((userCredential) => {
        // Signed in 
        var user = userCredential.user;
        // ...
      })
      .catch((error) => {
        var errorCode = error.code;
        var errorMessage = error.message;
        // ..
      });
    إذا تم إنشاء الحساب الجديد، فسيتم تسجيل دخول المستخدم تلقائيًا. قم بإلقاء نظرة على قسم الخطوات التالية أدناه للحصول على تفاصيل المستخدم الذي قام بتسجيل الدخول.

    وهذا أيضًا هو المكان الذي يمكنك فيه اكتشاف الأخطاء ومعالجتها. للحصول على قائمة برموز الأخطاء، قم بإلقاء نظرة على Auth Reference Docs .

تسجيل دخول المستخدم باستخدام عنوان البريد الإلكتروني وكلمة المرور

تشبه خطوات تسجيل دخول المستخدم بكلمة مرور خطوات إنشاء حساب جديد. في صفحة تسجيل الدخول إلى تطبيقك، قم بما يلي:

  1. عندما يقوم مستخدم بتسجيل الدخول إلى تطبيقك، قم بتمرير عنوان البريد الإلكتروني وكلمة المرور للمستخدم إلى signInWithEmailAndPassword :

    Web modular API

    import { getAuth, signInWithEmailAndPassword } from "firebase/auth";
    
    const auth = getAuth();
    signInWithEmailAndPassword(auth, email, password)
      .then((userCredential) => {
        // Signed in 
        const user = userCredential.user;
        // ...
      })
      .catch((error) => {
        const errorCode = error.code;
        const errorMessage = error.message;
      });

    Web namespaced API

    firebase.auth().signInWithEmailAndPassword(email, password)
      .then((userCredential) => {
        // Signed in
        var user = userCredential.user;
        // ...
      })
      .catch((error) => {
        var errorCode = error.code;
        var errorMessage = error.message;
      });
    قم بإلقاء نظرة على قسم الخطوات التالية أدناه للحصول على تفاصيل المستخدم الذي قام بتسجيل الدخول.

    وهذا أيضًا هو المكان الذي يمكنك فيه اكتشاف الأخطاء ومعالجتها. للحصول على قائمة برموز الأخطاء، قم بإلقاء نظرة على Auth Reference Docs .

موصى به: تمكين حماية تعداد البريد الإلكتروني

تؤدي بعض طرق مصادقة Firebase التي تأخذ عناوين البريد الإلكتروني كمعلمات إلى ظهور أخطاء محددة إذا كان عنوان البريد الإلكتروني غير مسجل عندما يجب تسجيله (على سبيل المثال، عند تسجيل الدخول باستخدام عنوان بريد إلكتروني وكلمة مرور)، أو مسجل عندما يجب أن يكون غير مستخدم (على سبيل المثال، عند تغيير عنوان البريد الإلكتروني للمستخدم). على الرغم من أن هذا يمكن أن يكون مفيدًا في اقتراح حلول محددة للمستخدمين، إلا أنه يمكن أيضًا إساءة استخدامه من قبل جهات ضارة لاكتشاف عناوين البريد الإلكتروني المسجلة بواسطة المستخدمين.

للتخفيف من هذه المخاطر، نوصيك بتمكين حماية تعداد البريد الإلكتروني لمشروعك باستخدام أداة Google Cloud gcloud . لاحظ أن تمكين هذه الميزة يغير سلوك الإبلاغ عن الأخطاء في مصادقة Firebase: تأكد من أن تطبيقك لا يعتمد على الأخطاء الأكثر تحديدًا.

الخطوات التالية

بعد قيام المستخدم بتسجيل الدخول لأول مرة، يتم إنشاء حساب مستخدم جديد وربطه ببيانات الاعتماد - أي اسم المستخدم وكلمة المرور أو رقم الهاتف أو معلومات موفر المصادقة - التي قام المستخدم بتسجيل الدخول بها. يتم تخزين هذا الحساب الجديد كجزء من مشروع Firebase الخاص بك، ويمكن استخدامه لتحديد المستخدم عبر كل تطبيق في مشروعك، بغض النظر عن كيفية تسجيل دخول المستخدم.

  • في تطبيقاتك، الطريقة الموصى بها لمعرفة حالة المصادقة للمستخدم هي تعيين مراقب على كائن Auth . يمكنك بعد ذلك الحصول على معلومات الملف الشخصي الأساسية للمستخدم من كائن User . راجع إدارة المستخدمين .

  • في قاعدة بيانات Firebase Realtime وقواعد أمان التخزين السحابي، يمكنك الحصول على معرف المستخدم الفريد للمستخدم الذي قام بتسجيل الدخول من متغير auth ، واستخدامه للتحكم في البيانات التي يمكن للمستخدم الوصول إليها.

يمكنك السماح للمستخدمين بتسجيل الدخول إلى تطبيقك باستخدام موفري مصادقة متعددين عن طريق ربط بيانات اعتماد موفر المصادقة بحساب مستخدم موجود.

لتسجيل خروج مستخدم، اتصل signOut :

Web modular API

import { getAuth, signOut } from "firebase/auth";

const auth = getAuth();
signOut(auth).then(() => {
  // Sign-out successful.
}).catch((error) => {
  // An error happened.
});

Web namespaced API

firebase.auth().signOut().then(() => {
  // Sign-out successful.
}).catch((error) => {
  // An error happened.
});