Recherche d’une session
Fait partie de la section Authentification et sécurité du Journey Node.js de Coddy. Leçon 9 sur 24.
Un identifiant de session pointe vers une session enregistrée, et cette session pointe vers un compte. La clé elle-même n’est pas un nom d’utilisateur. Résous les deux liens avant de déterminer qui a effectué la requête.
// tickets: {key: 'example-key', memberId: 7}
const ticket = tickets.find(t => t.key === receivedKey);
const member = ticket && members.find(m => m.id === ticket.memberId);Ne renvoie aucun utilisateur si l’une ou l’autre des recherches ne trouve rien. Les vrais identifiants de session sont de longues valeurs aléatoires afin que d’autres personnes ne puissent pas les deviner ; les clés courtes utilisées ici facilitent l’examen de la relation. Le projet suivant utilise des collections MongoDB et findOne pour ces deux recherches plutôt que des tableaux.
Défi
FacileDans exercise.js, utilisez les tableaux sessions et users fournis. Trouvez la session correspondant à sid, puis l’utilisateur dont l’id correspond à son userId. Renvoyez le nom d’utilisateur dans user, ou null si l’une ou l’autre des recherches échoue.
Essayez GET /result?sid=key-a : {"user":"ada"}. Un nom d’utilisateur tel que ?sid=ada ne prouve rien et renvoie null. ?sid=orphan renvoie également null, car son compte est manquant.
Essayez vous-même
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 };
}
Toutes les leçons de Authentification et sécurité
2Sessions et cookies
Se souvenir avec les cookiesRecherche d’une sessionSessions de connexionRoutes protégées par une connexionEntraînez-vous par vous-même : Playground Express