חיפוש Session
חלק מהיחידה אימות ואבטחה במסלול ה-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, ואז את המשתמש שהמזהה שלו תואם ל־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 };
}
כל השיעורים ביחידה אימות ואבטחה
תרגלו בעצמכם: Express אונליין