Skip to content

noone313/otp-1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

otp-1

نظام التحقق بواسطة رمز OTP (One-Time Password)

مقدمة

في هذا المشروع، قمت ببناء نظام متكامل لإرسال رموز تحقق لمرة واحدة (OTP) للتحقق من هوية المستخدمين بطريقة آمنة وفعالة. يعتمد النظام على تقنيات حديثة مثل Redis لتخزين الرموز مؤقتاً، وNode.js مع Express كخادم خلفي، بالإضافة إلى استخدام خدمات البريد الإلكتروني لإرسال OTP.


الهدف من المشروع

الهدف الأساسي هو توفير آلية تحقق قوية تحمي الحسابات من محاولات الدخول غير المصرح بها، وذلك عبر إرسال رمز تحقق مؤقت يُستخدم لمرة واحدة فقط.


المكونات الأساسية للنظام

1. إنشاء رمز OTP

  • يتم توليد رمز عشوائي مكون من 6 أرقام.
  • يتم حفظ الرمز مع معرّف المستخدم أو البريد الإلكتروني في قاعدة بيانات ذاكرة مؤقتة (Redis) مع فترة صلاحية قصيرة (مثلاً 5 دقائق).

2. إرسال رمز OTP عبر البريد الإلكتروني

  • استخدام مكتبة nodemailer لإرسال الرمز إلى البريد الإلكتروني الخاص بالمستخدم.
  • يدعم النظام إرسال البريد باستخدام خدمات إرسال إيميلات احترافية مثل (SendGrid).

3. التحقق من الرمز

  • عند استلام المستخدم للرمز، يقوم بإدخاله في التطبيق.
  • يتم التحقق من الرمز الموجود في Redis ومقارنته مع المدخل.
  • إذا تطابق الرمز وكان ضمن فترة الصلاحية، يتم قبول عملية التحقق وإتمامها.

4. إدارة التخزين المؤقت (Redis)

  • يستخدم Redis لتخزين رموز OTP مؤقتاً بهدف تحسين الأداء والسرعة بدلاً من استخدام قواعد البيانات التقليدية.
  • يضمن Redis انتهاء صلاحية الرموز تلقائياً وعدم إمكانية إعادة استخدامها.

التقنيات المستخدمة

  • Node.js مع إطار Express لإنشاء API RESTful.
  • Redis لتخزين رموز OTP مؤقتاً مع صلاحية زمنية محددة.
  • nodemailer لإرسال البريد الإلكتروني.
  • dotenv لإدارة المتغيرات السرية (مثل بيانات الدخول لخدمة البريد).


لماذا اخترت هذا التصميم؟

  • استخدام Redis لتخزين رموز OTP يمنح سرعة كبيرة مع استهلاك منخفض للموارد.
  • فصل منطق إرسال البريد عن منطق إنشاء الرموز يجعل الكود أكثر تنظيماً وقابلية للصيانة.
  • الاعتماد على nodemailer يسمح بمرونة في تغيير مزود البريد بسهولة.

التطوير المستقبلي

  • إضافة خاصية إرسال OTP عبر الرسائل النصية SMS باستخدام خدمات مثل Twilio.
  • دمج التحقق عبر البريد مع OAuth لتجربة تسجيل دخول أكثر سهولة.
  • بناء واجهة مستخدم تفاعلية لطلب التحقق وعرض حالة OTP.
  • تحسين آلية مراقبة محاولات الفشل وإرسال تنبيهات أمنية.

خلاصة

يعتبر نظام OTP من الأنظمة المهمة لتعزيز أمان تطبيقات الويب وتطبيقات الهواتف الذكية. يتيح هذا المشروع نموذجاً عملياً وبسيطاً لبناء نظام تحقق يعتمد على البريد الإلكتروني مع تقنيات حديثة تضمن سرعة وأمان عاليين.


About

otp system

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors