Skip to content

Bun fournit une API intégrée pour travailler avec les cookies dans les requêtes et réponses HTTP. L'objet BunRequest inclut une propriété cookies qui fournit un CookieMap pour accéder et manipuler facilement les cookies. Lors de l'utilisation de routes, Bun.serve() suit automatiquement request.cookies.set et les applique à la réponse.

Lire les cookies

Lisez les cookies des requêtes entrantes en utilisant la propriété cookies sur l'objet BunRequest :

ts
Bun.serve({
  routes: {
    "/profile": req => {
      // Accéder aux cookies de la requête
      const userId = req.cookies.get("user_id");
      const theme = req.cookies.get("theme") || "light";

      return Response.json({
        userId,
        theme,
        message: "Page de profil",
      });
    },
  },
});

Définir des cookies

Pour définir des cookies, utilisez la méthode set sur le CookieMap de l'objet BunRequest.

ts
Bun.serve({
  routes: {
    "/login": req => {
      const cookies = req.cookies;

      // Définir un cookie avec diverses options
      cookies.set("user_id", "12345", {
        maxAge: 60 * 60 * 24 * 7, // 1 semaine
        httpOnly: true,
        secure: true,
        path: "/",
      });

      // Ajouter un cookie de préférence de thème
      cookies.set("theme", "dark");

      // Les cookies modifiés de la requête sont automatiquement appliqués à la réponse
      return new Response("Connexion réussie");
    },
  },
});

Bun.serve() suit automatiquement les cookies modifiés de la requête et les applique à la réponse.

Supprimer des cookies

Pour supprimer un cookie, utilisez la méthode delete sur l'objet request.cookies (CookieMap) :

ts
Bun.serve({
  routes: {
    "/logout": req => {
      // Supprimer le cookie user_id
      req.cookies.delete("user_id", {
        path: "/",
      });

      return new Response("Déconnexion réussie");
    },
  },
});

Les cookies supprimés deviennent un en-tête Set-Cookie sur la réponse avec maxAge défini à 0 et une value vide.

Bun édité par www.bunjs.com.cn