NahdaAIنهضة
Firebase & Supabase • المستوى الثاني • الدرس 3

إدارة الحسابات المتقدمة (Advanced Authentication)

العودة لفهرس المستوى

أهداف الدرس العلمية

  • تحديث الملف الشخصي بـ updateProfile والبريد بـ updateEmail.
  • إعادة المصادقة قبل العمليات الحساسة بـ reauthenticateWithCredential.
  • إدارة التحقق من البريد وإعادة تعيين كلمة المرور.
  • حذف الحساب نهائياً بـ deleteUser.

1. إدارة المستخدم الحالي

بعد تسجيل الدخول، يمكنك الوصول للمستخدم الحالي عبر auth.currentUser. Firebase تُوفّر دوال متقدمة لتحديث بياناته، تأمين حسابه، أو حذفه.

javascript
const user = auth.currentUser;

if (user) {
  console.log(user.uid);
  console.log(user.email);
  console.log(user.displayName);
  console.log(user.emailVerified);
  console.log(user.photoURL);
}

2. لماذا Re-authentication؟

العمليات الحساسة (تغيير كلمة المرور، حذف الحساب) تتطلب إعادة إدخال كلمة المرور — حتى لو كان المستخدم مسجّلاً. هذا يحمي من اختراق الجهاز المفتوح.

javascript
// العملية:
// 1. أعد المصادقة
const cred = EmailAuthProvider.credential(email, password);
await reauthenticateWithCredential(user, cred);

// 2. الآن يمكنك:
await updatePassword(user, newPassword);
await deleteUser(user);

3. جدول عمليات Auth

العمليةالدالةتحتاج re-auth؟
تحديث الاسم/الصورةupdateProfileلا
تحديث البريدupdateEmailنعم
تغيير كلمة المرورupdatePasswordنعم
حذف الحسابdeleteUserنعم
التطبيق العملي المباشر

تحدي الدرس الثالث: نظام إدارة حساب كامل

  1. أضف updateEmail و updatePassword و reauthenticateWithCredential و EmailAuthProvider و deleteUser للـ imports.
  2. أنشئ دالة updateUserProfile(displayName, photoURL).
  3. أنشئ دالة changeEmail(newEmail).
  4. أنشئ دالة changePassword(currentPassword, newPassword) مع re-auth.
  5. أنشئ دالة deleteAccount(password) مع re-auth.
  6. أضف اختبار تلقائي لـ resetPassword.
⏳ جارٍ تحميل المحرر التفاعلي...