Menu
CoddyTech

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.

challenge icon

Sfida

Facile

In 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

Esercitati da solo: Playground Express