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

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

قبل البدء

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

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

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

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

    Web

    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

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

    ويمكنك هنا أيضًا رصد الأخطاء ومعالجتها. للحصول على قائمة برموز الأخطاء، يمكنك الاطّلاع على المستندات المرجعية للمصادقة.

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

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

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

    Web

    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

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

    ويمكنك هنا أيضًا رصد الأخطاء ومعالجتها. للحصول على قائمة برموز الأخطاء، يمكنك الاطّلاع على المستندات المرجعية للمصادقة.

إجراء مقترَح: تفعيل حماية تعداد البريد الإلكتروني

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

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

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

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

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

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

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

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

Web

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

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

Web

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