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 | نعم |
التطبيق العملي المباشر
تحدي الدرس الثالث: نظام إدارة حساب كامل
- أضف
updateEmailوupdatePasswordوreauthenticateWithCredentialوEmailAuthProviderوdeleteUserللـ imports. - أنشئ دالة
updateUserProfile(displayName, photoURL). - أنشئ دالة
changeEmail(newEmail). - أنشئ دالة
changePassword(currentPassword, newPassword)مع re-auth. - أنشئ دالة
deleteAccount(password)مع re-auth. - أضف اختبار تلقائي لـ
resetPassword.
⏳ جارٍ تحميل المحرر التفاعلي...