brainax

قاعدة البيانات وتسجيل الدخول

الدرس 15 من 26 في دورة «البرمجة بالإحساس». مجاني، مع رسوم متحركة واختبار.

جدول، لكنه أذكى

قاعدة البيانات مخزن منظم لبيانات تطبيقك. تعمل مثل جدول Excel. الصف سجل واحد، مثلًا مستخدم واحد. العمود حقل، أي خاصية واحدة للسجل. في الرسم الأعمدة هي id (رقم فريد للصف) وemail وstreak (عدد الأيام المتتالية). مثال هذا الدرس: تبني متتبّعًا للمذاكرة لصفك، ولكل زميل صفّه الخاص.

لماذا ليس في المتصفح

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

خلفية جاهزة

لا داعي لبناء خادم وقاعدة بيانات من الصفر. توجد خلفيات جاهزة: الجزء الخاص بالخادم مُجمّع لك مسبقًا. Supabase: قاعدة بيانات Postgres (قاعدة مفتوحة المصدر شائعة) وتسجيل دخول وتخزين ملفات. Firebase: مجموعة مشابهة من Google. Cloudflare D1: قاعدة بسيطة لمشاريع Cloudflare. لدى كثير منها خطة مجانية، وتحقق من الحدود في موقع الخدمة.

تسجيل الدخول: لا تخترع نظامك

الـ Auth (المصادقة) هو التسجيل وتسجيل الدخول، أي طريقة معرفة من أمامك. الفخ: أن تطلب من الذكاء الاصطناعي «اصنع تسجيل دخول» فتحصل على جدول كلمات مرور مصنوع يدويًا. حفظ كلمات المرور بأمان صعب، والتسريب يضر الجميع. استخدم دخول المزوّد: Supabase أو Firebase تحفظ كلمات المرور بأمان وتتيح الدخول برابط في البريد أو عبر Google. في الرسم نموذج الدخول مرتبط بالجدول: كل صف يخص حسابًا.

RLS: كلٌّ يرى بياناته

قواعد الوصول تحدد من يستطيع قراءة أي صفوف وتعديلها. في Supabase اسمها RLS (Row Level Security، أي حماية على مستوى الصف). المفتاح العام لـ Supabase يوضع في الواجهة، وهذا مقصود. لكن دون RLS يستطيع أي شخص يملك هذا المفتاح تنزيل الجدول كله: بريد كل زملائك. مع قاعدة «كلٌّ يرى صفوفه فقط»، كما على القفل في الرسم، تبقى بيانات الآخرين مغلقة. أما المفتاح السري الذي يتجاوز القواعد فمكانه الخادم فقط.

اختبر نفسك

  1. لماذا تُحفظ بيانات المتتبّع في قاعدة بيانات وليس في localStorage؟
    الإجابة الصحيحة: القاعدة مشتركة بين كل الأجهزة والمستخدمين. يعيش localStorage في متصفح واحد على جهاز واحد. أما القاعدة على الخادم فتُفتح من أي جهاز ولكل من لديه إذن.
  2. ما أفضل طريقة لإضافة تسجيل الدخول إلى تطبيقك؟
    الإجابة الصحيحة: استخدام دخول جاهز من مزوّد مثل Supabase. حفظ كلمات المرور بأمان صعب. المزوّدون يفعلون ذلك عنك ويتيحون الدخول بالبريد وعبر Google.
  3. المفتاح العام لـ Supabase في الواجهة وRLS معطّل. ماذا يحدث؟
    الإجابة الصحيحة: يستطيع أي شخص تنزيل الجدول كله. المفتاح العام مرئي للجميع وهذا طبيعي. قواعد RLS هي التي تحمي البيانات، ودونها يكون الجدول مفتوحًا لأي أحد.

← النطاق وDNS API: ربط خدمات الآخرين →