البحث عن جلسة
جزء من قسم المصادقة والأمان في رحلة 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 لعمليتي البحث هاتين بدلًا من المصفوفات.
التحدي
سهلفي 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 };
}
جميع دروس المصادقة والأمان
2الجلسات وملفات تعريف الارتباط
التذكّر باستخدام ملفات تعريف الارتباطالبحث عن جلسةجلسات تسجيل الدخولالمسارات المحمية بتسجيل الدخولتدرّب بنفسك: Playground لـ Express