[next.js + axios + django] CSRF 검증에 실패했습니다 error
2022. 11. 24. 14:41
반응형
Reason given for failure:
CSRF token missing.
In general, this can occur when there is a genuine Cross Site Request Forgery, or when Django’s CSRF mechanism has not been used correctly. For POST forms, you need to ensure:
...
서버에 post 요청을 보냈더니 CSRF 검증에 실패했다며 403 에러가 떴다.
import axios from 'axios'
axios.defaults.baseURL = 'http://localhost:8000/api/v1'
axios.defaults.withCredentials = true
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'
axios.defaults.xsrfCookieName = 'csrftoken' //추가
axios.defaults.xsrfHeaderName = 'X-CSRFToken' //추가
export const fetcher = <T = unknown>(url: string) => axios.get<T>(url).then((res) => res.data)
이 글을 참고해서 위와 같이 쿠키네임, 헤더네임을 추가했더니 해결되었다!
로컬스토리지를 통해서 인증을하는대신,
쿠키에 저장된 토큰들로 인증을 하도록 인증환경을 구축해서 발생한 문제였다.
반응형
'한 걸음 > React & Next.js' 카테고리의 다른 글
[React-hook-form] 일반 버튼 눌렀을 때 formData 가져오기 (0) | 2022.12.14 |
---|---|
[axios] post API custom hook으로 만들기 (0) | 2022.12.07 |
[Vite + eslint] 절대경로 설정하기 (0) | 2022.09.13 |
[React + Three.js + blender] 움직이는 3D 캐릭터 웹사이트에 구현 (0) | 2022.09.13 |
[React + Typescript] 카카오 SDK를 이용한 공유기능 구현 (0) | 2022.09.13 |