Skip to main content
Architecture11 min read

المصادقة أصعب مما تظن

لقد قمت بتنفيذ المصادقة 4 مرات عبر مشاريع مختلفة. في كل مرة ظننت أنها ستستغرق يومين. وفي كل مرة استغرقت أسبوعين. إليك السبب، وما سأفعله بشكل مختلف.

Part ofCloud & Infrastructure->
By Jason TeixeiraDecember 28, 2025
AuthenticationSecuritySupabaseJWTArchitecture
Share:
On this page

كل خطة مشروع كتبتها على الإطلاق تضمنت بندًا: "المصادقة — يومان."

كل مراجعة لمشروع احتوت على ملاحظة: "المصادقة استغرقت أسبوعين."

لقد بنيت أنظمة مصادقة 4 مرات حتى الآن. في كل مرة، أستهين بها. إليك السبب، وما تعلمته أخيرًا.

جبل الجليد

ما تظن أن المصادقة هي:

  • نموذج تسجيل دخول
  • تخزين رمز مميز
  • التحقق من صحة الرمز
  • انتهى

ما هي المصادقة فعليًا:

  • نموذج تسجيل دخول (بريد إلكتروني/كلمة مرور + OAuth + روابط سحرية + MFA؟)
  • تجزئة كلمة المرور (bcrypt, argon2, ما عامل التكلفة؟)
  • إدارة الجلسات (JWT مقابل ملف تعريف ارتباط الجلسة مقابل كليهما؟)
  • تحديث الرمز المميز (تحديث صامت، تدوير، إبطال)
  • حماية CSRF (ملفات تعريف الارتباط لنفس الموقع، رمز الإرسال المزدوج)
  • تحديد المعدل (عند تسجيل الدخول، عند التسجيل، عند إعادة تعيين كلمة المرور)
  • تدفق إعادة تعيين كلمة المرور (إنشاء رمز، انتهاء الصلاحية، استخدام لمرة واحدة)
  • التحقق من البريد الإلكتروني (رمز، منطق إعادة الإرسال، ماذا لو غيروا البريد الإلكتروني؟)
  • قفل الحساب (كم عدد المحاولات؟ ما هو تدفق فتح القفل؟)
  • التحكم بالوصول المستند إلى الدور (مسؤول مقابل مستخدم مقابل مشرف)
  • إدارة مفاتيح API (للوصول البرمجي)
  • إبطال الجلسة عند تغيير كلمة المرور
  • "تذكرني" مقابل "هذه الجلسة فقط"
  • إشعار تسجيل الدخول من جهاز جديد
  • تسجيل التدقيق (من سجل الدخول، متى، من أين)

هذه 15+ ميزة. بمعدل 1-2 يوم لكل منها، أنت تتحدث عن شهر.

ما أفعله الآن: استخدام Supabase Auth والتوسيع

بعد بناء مصادقة مخصصة مرتين ومعاناة حياتي في كلتا المرتين، أبدأ الآن مع Supabase Auth (أو Clerk، أو Auth.js). إنها تتعامل مع:

  • البريد الإلكتروني/كلمة المرور مع bcrypt
  • موفري OAuth (Google, GitHub, Discord)
  • رموز JWT مع التحديث
  • التحقق من البريد الإلكتروني
  • إعادة تعيين كلمة المرور
  • إدارة الجلسات
  • تحديد المعدل

هذا 80% من المصادقة، يديرها أشخاص يفكرون في المصادقة بدوام كامل. أركز على الـ 20% الخاصة بتطبيقي:

\\

Reader route

article -> proof -> offer

ReadClusterProofScope

cluster

Cloud & Infrastructure

intent

Architecture

route

next step

What to do with this

Turn the note into a build path.

If this topic maps to a real business problem, keep reading the cluster, study the academy path, or route the work into a scoped engagement.

Jason Teixeira
Written by
Jason Teixeira
Founder, Sage Ideas Studio · Principal Engineer
livebuild 5d6c8652026-08-05 06:00Z
// solo studio// no analytics resold// every commit human-reviewed