Menu
CoddyTech

البحث عن جلسة

جزء من قسم المصادقة والأمان في رحلة Node.js على Coddy. الدرس 9 من 24.

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

// tickets: {key: 'example-key', memberId: 7}
const ticket = tickets.find(t => t.key === receivedKey);
const member = ticket && members.find(m => m.id === ticket.memberId);

أعِد عدم وجود مستخدم إذا لم يُعثر على نتيجة في أيٍّ من عمليتي البحث. معرّفات الجلسات الحقيقية طويلة وعشوائية كي لا يتمكن الآخرون من تخمينها؛ أما المفاتيح القصيرة هنا فتجعل العلاقة سهلة الفحص. يستخدم المشروع التالي مجموعات MongoDB والدالة findOne لعمليتي البحث هاتين بدلًا من المصفوفات.

challenge icon

التحدي

سهل

في exercise.js، استخدم مصفوفتَي sessions وusers المزوّدتين. اعثر على الجلسة المطابقة لـ sid، ثم على المستخدم الذي تطابق قيمة id لديه قيمة userId الخاصة بها. أعد اسم المستخدم في user، أو null إذا أخفق أيٌّ من البحثين.

جرّب GET /result?sid=key-a: {"user":"ada"}. اسم مستخدم مثل ?sid=ada لا يثبت شيئًا، وسيُعيد null. كما أن ?sid=orphan سيُعيد null لأن حسابه مفقود.

جرّب بنفسك

const sessions = [
    { id: 'key-a', userId: 10 },
    { id: 'key-b', userId: 20 },
    { id: 'orphan', userId: 99 },
];
const users = [
    { id: 10, username: 'ada' },
    { id: 20, username: 'bo' },
];
export function exercise({ sid }) {
    return { user: sid };
}

جميع دروس المصادقة والأمان

تدرّب بنفسك: Playground لـ Express