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.
Wyzwanie
ŁatwyW 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
2Sesje i pliki cookie
Zapamiętywanie za pomocą plików cookieWyszukiwanie sesjiSesje logowaniaTrasy wymagające logowaniaPoćwicz samodzielnie: Edytor online Express