Skip to content

Bun 은 HTTP 요청 및 응답에서 쿠키를 처리하기 위한 내장 API 를 제공합니다. BunRequest 객체에는 쿠키에 쉽게 접근하고 조작할 수 있는 CookieMap 을 제공하는 cookies 속성이 포함되어 있습니다. routes 를 사용할 때 Bun.serve()request.cookies.set 을 자동으로 추적하여 응답에 적용합니다.

쿠키 읽기

BunRequest 객체의 cookies 속성을 사용하여 들어오는 요청에서 쿠키를 읽습니다.

ts
Bun.serve({
  routes: {
    "/profile": req => {
      // 요청에서 쿠키에 접근
      const userId = req.cookies.get("user_id");
      const theme = req.cookies.get("theme") || "light";

      return Response.json({
        userId,
        theme,
        message: "프로필 페이지",
      });
    },
  },
});

쿠키 설정

쿠키를 설정하려면 BunRequest 객체의 CookieMap 에서 set 메서드를 사용합니다.

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

      // 다양한 옵션으로 쿠키 설정
      cookies.set("user_id", "12345", {
        maxAge: 60 * 60 * 24 * 7, // 1 주
        httpOnly: true,
        secure: true,
        path: "/",
      });

      // 테마 선호도 쿠키 추가
      cookies.set("theme", "dark");

      // 요청에서 수정된 쿠키는 자동으로 응답에 적용됨
      return new Response("로그인 성공");
    },
  },
});

Bun.serve() 는 요청에서 수정된 쿠키를 자동으로 추적하여 응답에 적용합니다.

쿠키 삭제

쿠키를 삭제하려면 request.cookies (CookieMap) 객체에서 delete 메서드를 사용합니다.

ts
Bun.serve({
  routes: {
    "/logout": req => {
      // user_id 쿠키 삭제
      req.cookies.delete("user_id", {
        path: "/",
      });

      return new Response("로그아웃 성공");
    },
  },
});

삭제된 쿠키는 응답의 Set-Cookie 헤더가 되며 maxAge0 으로 설정되고 value 는 비어 있습니다.

Bun by www.bunjs.com.cn 편집