소개
웹 애플리케이션에서 인증 및 세션 관리는 매우 중요합니다. 이를 위해 쿠키를 사용하는 경우가 많습니다. 이번 포스팅에서는 React
에서 Axios
를 사용하여 서버로 요청을 보낼 때 쿠키를 설정하는 방법에 대해 알아보겠습니다. 특히 withCredentials
옵션이 왜 필요한지, 어떻게 사용하는지에 대해 자세히 설명하겠습니다.
Axios
Axios
는 브라우저와 Node.js
를 위한 Promise
기반 HTTP 클라이언트
입니다. 먼저 Axios
를 설치합니다.
1 | npm install axios |
Axios 기본 설정
1 | import axios from "axios"; |
위 설청에서 withCredentials: true
옵션은 Axios
가 요청을 보낼 때 쿠키를 포함하도록 설정합니다. 이 옵션을 설정하지 않으면 서버로 요청을 보낼 때 쿠키가 포함되지 않습니다. 이는 CORS(Cross-Origin Resource Sharing)
정책 때문입니다. REACT_APP_BACKEND_BASE_URL
은 서버의 도메인입니다.
서버 설정
React
앱에서만 쿠키를 설정하는 것으로는 쿠키를 서버로 전달할 수 없습니다. 서버에서도 쿠키를 설정해야 합니다. 서버에서 쿠키를 설정하는 방법은 서버 언어에 따라 다릅니다. 여기서는 Node.js
와 Express
를 사용하는 경우로 설명하겠습니다.
1 | const express = require("express"); |
위 코드에서 cors
미들웨어의 credentials
옵션을 true
로 설정하면 요청에 쿠키를 포함할 수 있습니다. origin
옵션은 요청을 허용할 도메인을 설정합니다. FRONTEND_BASE_URL
은 프론트엔드 앱의 도메인입니다.
결론
React
와 Axios
를 사용하여 쿠키
를 포함한 요청을 보내는 것은 비교적 간단합니다. 중요한 것은 withCredentials
옵션을 설정하고, 서버에서도 CORS
를 적절히 설정하여 쿠키가 포함된 요청을 허용하는 것입니다. 이를 통해 보다 안전하고 효율적인 인증 및 세션 관리를 할 수 있습니다.