اذهب إلى المحتوى

السؤال

نشر

أعمل على نظام مصادقة المستخدم "authentication" لموقعي الإلكتروني وعملت أكود لعملية التسجيل والمفترض من النظام أنه عندما يحاول شخص ما التسجيل باسم مستخدم موجود مسبقا يُظهر له النظام أن المستخدم موجود مسبقا ولكن في البوستمان تحدث عملية التسجيل مرة أخرى حتى ولو كان المستخدم موجود وكأنه غير موجود مع العلم أن المستخدم الجديد لا يتم إضافته إلى قاعدة البيانات الخاصة بي في mongoDB 

جربت الحلول التالية:

- تأكدت من IP الخاص بي وقد تم تضمينه في network access الخاص بحسابي في موقع mongoDB أي انه ليس هو المشكلة

- قمت بإطفاء السيرفر ثم أعدت تشغيله وبلا فائدة

أرجو ممن يمكنه مساعدتي الإطلاع على ملف الباك إند المرفق

backend.rar

Recommended Posts

  • 0
نشر

لا يتم قبول تسجيله في قاعدة البيانات لأن القيود المفروضة على عنوان البريد الالكتروني واسم المستخدم تفترض أن يكونا فريدين unique وذلك بحسب توصيفك لها في ملف النموذج User.js، أما بالنسبة للمشكلة التي تحدث فجرب تخصيص أسماء الحقول في الكائن المسند لأنموذج User 

const newUser = new User({
    username: newUsername,
    email: email,
    password: passwordHash,
    name: name
})

يحتمل أن هنالك مشكلة من الأساس في تسجيل المستخدم أول مرة.

  • 0
نشر
بتاريخ 1 دقيقة مضت قال محمد الحربي:

بالنسبة للقيود من المفترض أن تظهر رسالة خطأ تقول أن المستخدم موجود

ولكن كما قلت لي هناك مشكلة في تسجيل المستخدم أول مرة

صحيح، ينبغي أن يتم إرجاع رسالة خطأ تشير إلى أن المستخدم موجود مسبقًا عند محاولة تسجيل مستخدم جديد باسم مستخدم مكرر أو عنوان بريد إلكتروني مكرر، وهذا يمكن تحقيقه عن طريق التحقق من وجود المستخدم في قاعدة البيانات باستخدام الدالة findOne وإرجاع رسالة الخطأ بناءً على ذلك.

ومن الممكن أيضاً أن يكون هناك خطأ في تسجيل المستخدم الأول، ويمكن التحقق من ذلك عن طريق إدخال مستخدم جديد يختلف في اسم المستخدم وعنوان البريد الإلكتروني وتحديد ما إذا كان يتم إضافته بنجاح إلى قاعدة البيانات.

وبالنسبة لتخصيص أسماء الحقول في الكائن المسند لنموذج User، فقد يكون هذا ضروريًا إذا كانت أسماء الحقول في النموذج مختلفة عن أسماء الحقول في قاعدة البيانات، وباستطاعتك تحقيق ذلك باستخدام خاصية toObject في النموذج لتحويل الكائن إلى كائن قابل للتخزين في قاعدة البيانات.

  • 0
نشر

حاول كتابة console.log لقيمة user_name و Email في الشروط المتعلقة بالتحقق من الاسم والبريد الإلكتروني، وتأكد من أن الشروط تنطبق على القيم المتوفرة في قاعدة البيانات. كما يمكنك استخدام debugger أو console.log لتتبع مسار التنفيذ في حالة عدم الوصول إلى النتيجة المتوقعة.

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...