- next 14.1.0
- cookies ( next/headers )
서버에서 받아온 accessToken을 어딘가에 저장하고 특정페이지에서 백엔드로 어떤 요청을 accessToken을 header에 담아서 보내줘야 상황이였다.
이전 react 프로젝트의 경우 localStorage 등을 사용해서 처리했겠지만
next의 app router를 사용하는 현재 server component와 client component에서의 동작이 구분되어 server component에서 local storage를 사용하지 못하는 상황이라 다른 방법이 필요했다.
next/headers의 cookies를 사용하기로 하고 cookies 사용 방법을 알아봤다.
next 공식문서 내용 중 일부이다. 해당 내용을 토대로 이것저것 시도해보고 현재 확인되는 동작이다.
cookies().set()
[O] Router Handler( Client Component에서 요청 )에서 호출
[X] Router Handler( Server Component에서 요청 )에서 호출
cookies().get()
[O] Server Component에서 호출
[X] Client Component에서 호출
정리하면
SET -> client component에서 요청-> app/api/cookies/route.ts에서 cookies().set()
GET -> server component에서 cookies().get()
// route.ts
import { NextRequest, NextResponse } from "next/server";
import { cookies } from "next/headers";
export async function POST(request: NextRequest) {
if (!request.body) {
return NextResponse.json({ status: 400, message: "Missing request cookies body" });
}
const body = await request.json();
if (!body.key || !body.value) {
return NextResponse.json({ status: 400, message: "Missing request cookies body" });
}
cookies().set(body.key, String(body.value));
return NextResponse.json({ status: 200 });
}
'🌱 next' 카테고리의 다른 글
Next14 + fetch interceptor ?? (1) | 2024.03.23 |
---|---|
나만 모르는 Next14에 대해서_1 (0) | 2024.03.08 |
[Next로 전적검색 사이트] server component에서 url가져오기 (1) | 2024.01.27 |
[Next로 전적검색 사이트] 홈 화면 애니메이션 (0) | 2024.01.27 |