Menu
CoddyTech

Wyszukiwanie sesji

Część sekcji Uwierzytelnianie i bezpieczeństwo ścieżki Node.js w Coddy. Lekcja 9 z 24.

Identyfikator sesji wskazuje zapisaną sesję, a ta sesja wskazuje konto. Sam klucz nie jest nazwą użytkownika. Rozwiąż oba powiązania, zanim zdecydujesz, kto wysłał żądanie.

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

Nie zwracaj żadnego użytkownika, jeśli nie uda się znaleźć któregokolwiek z nich. Rzeczywiste identyfikatory sesji są długimi, losowymi wartościami, więc inne osoby nie mogą ich odgadnąć; użyte tu krótkie klucze ułatwiają sprawdzenie powiązania. W poniższym projekcie do tych dwóch wyszukiwań używane są kolekcje MongoDB i metoda findOne zamiast tablic.

challenge icon

Wyzwanie

Łatwy

W pliku exercise.js użyj dostarczonych tablic sessions i users. Znajdź sesję dla sid, a następnie użytkownika, którego identyfikator jest zgodny z jej userId. Zwróć nazwę użytkownika w user lub null, jeśli którekolwiek wyszukiwanie się nie powiedzie.

Wypróbuj GET /result?sid=key-a: {"user":"ada"}. Nazwa użytkownika, taka jak ?sid=ada, niczego nie dowodzi i zwraca null. ?sid=orphan również zwraca null, ponieważ brakuje powiązanego konta.

Spróbuj swoich sił

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 };
}

Wszystkie lekcje w sekcji Uwierzytelnianie i bezpieczeństwo

Poćwicz samodzielnie: Edytor online Express