Bandar Abuseada نشر 29 مايو أرسل تقرير نشر 29 مايو (معدل) لدي سؤال الان لو اردت عمل مصادقه للرقم الهاتف ما هي الطريقه الافضل لعمل ذلك مستعملا MongoDB بعد انشاء كامل Data Structure? تم التعديل في 29 مايو بواسطة Bandar Abuseada خطء في كتابه Structure 2 اقتباس
0 Chihab Hedidi نشر 29 مايو أرسل تقرير نشر 29 مايو الفكرة بشكل عام سهلة و يمكنك فهمها بسهولة و تطبيقها حيث بعد إنشاء الهيكلية اللازمة في MongoDB، تأكد من أن لديك مجموعة (Collection) في MongoDB لتخزين معلومات المستخدمين، بما في ذلك رقم الهاتف ورمز التحققو لنفرض على أنها بالشكل التالي: { "_id": "unique_user_id", "phone_number": "1234567890", "verification_code": "123456", "is_verified": false } عند تسجيل المستخدم أو عند طلب التحقق، قم بإنشاء رمز تحقق عشوائي وإرساله إلى رقم الهاتف باستخدام خدمة إرسال الرسائل النصية (مثل Twilio)، ثم قم بحفظ رمز التحقق المرسل في سجل المستخدم في MongoDB مع رقم الهاتف، و عندما يقوم المستخدم بإدخال رمز التحقق، قم بمقارنة الرمز المدخل مع الرمز المخزن في قاعدة البيانات، إذا كان رمز التحقق صحيحا، قم بتحديث حقل is_verified ليصبح true في سجل المستخدم. 1 اقتباس
0 محمد عاطف17 نشر 29 مايو أرسل تقرير نشر 29 مايو الامر بسيط إذا كنت قد قمت بإنشاء ال Data Structuser الخاصة بقاعدة البيانات ولم ترد أن تقوم بتعديل ال collection الخاصة بالمستخدم فيمكنك إنشاء collection جديد ولنفرض إسمه sms_verifications و يحوي فقط ثلاثة حقول الأول هو ال id الخاص بالمستخدم و الثانى هو كود التفعيل المرسل و الأخير هو وقت إنتهاء الكود حيث يجب عليك وضعك وقت بحد أقصى 10 دقائق لإنتهاء الكود وذلك حفاظا على الأمان. والآن بمجرد طلب المستخدم كود تفعيل تقوم بإنشاء كود عشوائى وتقوم بحفظه في collection ال sms_verifications مع حفظ ال id الخاص بالمستخدم و من ثم إرسال الكود إلى الهاتف ويوجد العديد من المواقع التى تساعدك على ذلك مثل twilio و vonage . والآن عند إرسال المستخدم الكود الذى أرسل له تقوم باحضار السجل من sms_verifications بال id الخاص بالمستخدم ومن ثم مقارنة الكود مع التأكد من عدم إنتهاء الكود ويفضل لو قمت بعمل hash للكود وعدم حفظه كما هو فى قاعدة البيانات . وإذا كان الكود صحيح ولم تنتهى صلاحيته تقوم بوضع حالة المستخدم أنه verified 1 اقتباس
0 Mustafa Suleiman نشر 29 مايو أرسل تقرير نشر 29 مايو يجب وجود collection في قاعدة البيانات لحفظ رقم الهاتف وكود التأكيد وحالة التأكيد أي الحقول كالتالي: phone لتخزين رقم هاتف المستخدم ويجب أن يكون الحقل فريدًا لكل مستخدم. verificationCode لتخزين رمز التحقق الذي يتم إرساله إلى المستخدم عبر SMS. verified لتحديد هل رقم الهاتف قد تم التحقق منه أم لا، وتستطيع جعل الحقل عبارة عن قيمة منطقية (true أو false). ثم ستحتاج إلى منطق خاص لتنفيذ ذلك، من خلال إنشاء api وليكن /send-code لإرسال كود التحقق لرقم الهاتف ولديك خدمات مثل Twilio و auth0 و Firebase لفعل ذلك. بالطبع ستقوم بحفظ الـ OTP أو الكود في قاعدة البيانات لكي تتمكن من التحقق منه، وهناك طرق مختلفة لتوليده أحدها توليده باستخدام دالة random كالتالي: const verificationCode = Math.floor(100000 + Math.random() * 900000).toString(); للتوضيح إليك مثال باستخدام Twilio: app.post('/send-code', async (req, res) => { const { phone } = req.body; const verificationCode = Math.floor(100000 + Math.random() * 900000).toString(); let user = await User.findOne({ phone }); if (!user) { user = new User({ phone, verificationCode, verified: false }); } else { user.verificationCode = verificationCode; } await user.save(); client.messages.create({ body: `Your verification code is ${verificationCode}`, to: phone, from: 'رقمك على Twilio ', }).then((message) => { console.log(message.sid); res.send('Verification code sent.'); }).catch((error) => { console.error(error); res.status(500).send('Failed to send verification code.'); }); }); بعد إرسال الكود لرقم الهاتف سيقوم هو بإدخاله عليك إذن إنشاء api آخر باسم /verify-code لاستقبال الطلب ومعالجته والتأكد من صحة الرقم. app.post('/verify-code', async (req, res) => { const { phone, code } = req.body; const user = await User.findOne({ phone, verificationCode: code }); if (!user) { return res.status(400).send('Invalid verification code.'); } user.verified = true; await user.save(); res.send('Phone number verified successfully.'); }); 1 اقتباس
السؤال
Bandar Abuseada
لدي سؤال الان لو اردت عمل مصادقه للرقم الهاتف ما هي الطريقه الافضل لعمل ذلك مستعملا MongoDB بعد انشاء كامل Data Structure?
خطء في كتابه Structure
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.