본문 바로가기
개발/React, NextJs

httpOnly Cookie 속성이 부여된 쿠키 접근 방법

by 쓱싹디벨로퍼 2024. 6. 5.

HttpOnly Cookie

set-cookie 설정 시, XSS 공격 방지를 위해 HttpOnly 속성을 부여한다. 이를 통해 클라이언트 스크립트가 쿠키에 접근하는 것을 방지할 수 있다.

 

하지만 서버 컴포넌트에서는 접근 가능하다.

Next.js 13 이후 버전부터, app router의 모든 컴포넌트들이 기본적으로 서버 컴포넌트이기 때문에 접근이 가능하다! 접근 방법은 아래와 같다.

 

//app/home/page.tsx

import React from "react"
import { cookies } from "next/headers"

const page = () => {
	const cookieStore = cookies();
	const token = cookieStore.get("accessToken")?.value;

	if(!token) return null;

	return (
		<div>Home</div>
		<div>{ token }</div>
	)
}

 

더 자세한 방법은 nextJs 공식문서를 참고하면 된다.

https://nextjs.org/docs/app/api-reference/functions/cookies

 

Functions: cookies | Next.js

API Reference for the cookies function.

nextjs.org

 

 

그렇다면 클라이언트 컴포넌트에서 토큰을 사용하려면?

서버 컴포넌트에서 클라이언트 컴포넌트에 토큰값을 내려주면 된다!

//app/home/page.tsx

import React from "react"
import { cookies } from "next/headers"

const page = () => {
	const cookieStore = cookies();
	const token = cookieStore.get("accessToken")?.value;

	if(!token) return null;

	return (
		<div>Home</div>
		<ClientComponenet token={token}/>
	)
}

const ClientComponenet = ({ token } : { token : string }) => {

	return <div>토큰 : { token } </div>

}

 

728x90

'개발 > React, NextJs' 카테고리의 다른 글

React Query에 대해 알아보자  (2) 2024.06.05
CSR과 SSR에 대해 알아보자  (0) 2024.04.18
Next.js App router에서 MSW 기본 세팅  (0) 2024.04.03