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: "프로필 페이지",
});
},
},
});1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
쿠키 설정
쿠키를 설정하려면 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("로그인 성공");
},
},
});1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Bun.serve() 는 요청에서 수정된 쿠키를 자동으로 추적하여 응답에 적용합니다.
쿠키 삭제
쿠키를 삭제하려면 request.cookies (CookieMap) 객체에서 delete 메서드를 사용합니다.
ts
Bun.serve({
routes: {
"/logout": req => {
// user_id 쿠키 삭제
req.cookies.delete("user_id", {
path: "/",
});
return new Response("로그아웃 성공");
},
},
});1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
삭제된 쿠키는 응답의 Set-Cookie 헤더가 되며 maxAge 는 0 으로 설정되고 value 는 비어 있습니다.