Protège ton auth token des failles XSS: apprends à créer un helper TypeScript Hono pour lire et placer un cookie HttpOnly, sûr 30 jours, compatible CSRF.
Un cookie HttpOnly est invisible pour JavaScript côté navigateur.
Résultat : même si un script malveillant s’exécute (XSS), il ne pourra pas lire ton
token. Le serveur seul y accède via l’en-tête Cookie.
1import type { Context } from "hono";2import { getCookie, setCookie } from "hono/cookie";34export const TOKEN_COOKIE_NAME = "auth_token";56export function getAuthToken(c: Context): string | undefined {7return getCookie(c, TOKEN_COOKIE_NAME); // ^? Tooltip: Lit le cookie si présent8}910export function setAuthToken(c: Context, token: string): void {11setCookie(c, TOKEN_COOKIE_NAME, token, {12httpOnly: true, // ^? Tooltip: Inaccessible via document.cookie13path: "/", // ^? Tooltip: Disponible partout dans l'app14maxAge: 60 * 60 * 24 * 30, // ^? Tooltip: 30 jours (en secondes)15sameSite: "Lax", // ^? Tooltip: Protège contre la plupart des CSRF16});17}
Explications ligne par ligne :
TOKEN_COOKIE_NAME : un seul endroit à modifier si tu changes le nom.getAuthToken : lit la valeur stockée, retourne undefined si le cookie n’existe pas.setAuthToken :
httpOnly: true → sécurité XSS.path: "/" → le cookie suit toutes les routes.maxAge → 30 jours de durée de vie, assez long pour éviter des reconnexions fréquentes.sameSite: "Lax" → meilleures protections CSRF sans bloquer la navigation normale.Prochaine étape : intégrer ces helpers dans ton middleware de protection de routes.
Testez vos connaissances avec 5 questions
Sélectionnez toutes les réponses qui s'appliquent