Una ricerca di sessione
Fa parte della sezione Autenticazione e sicurezza del percorso Node.js di Coddy. Lezione 9 di 24.
Un ID di sessione rimanda a una sessione memorizzata, e quella sessione rimanda a un account. La chiave in sé non è un nome utente. Risolvi entrambi i collegamenti prima di decidere chi ha effettuato la richiesta.
// tickets: {key: 'example-key', memberId: 7}
const ticket = tickets.find(t => t.key === receivedKey);
const member = ticket && members.find(m => m.id === ticket.memberId);Non restituire alcun utente se una delle due ricerche non trova corrispondenze. Gli ID di sessione reali sono valori lunghi e casuali, così che altre persone non possano indovinarli; qui le chiavi brevi rendono facile esaminare la relazione. Il progetto seguente usa raccolte MongoDB e findOne per queste due ricerche anziché array.
Sfida
FacileIn exercise.js, usa gli array sessions e users forniti. Trova la sessione corrispondente a sid, poi l’utente il cui id corrisponde al suo userId. Restituisci lo username in user, oppure null se una delle due ricerche non ha successo.
Prova GET /result?sid=key-a: {"user":"ada"}. Uno username come ?sid=ada non dimostra nulla e restituisce null. Anche ?sid=orphan restituisce null perché manca il suo account.
Provalo tu
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 };
}
Tutte le lezioni di Autenticazione e sicurezza
2Sessioni e cookie
Ricordare con i cookieUna ricerca di sessioneSessioni di accessoRoute protette dall’accessoEsercitati da solo: Playground Express