on
CSRF 토큰 오류
CSRF 토큰 오류
에러 내용
django 에서 DEBUG 옵션을 True로 둔 뒤, POST 요청을 보내면 아래와 같이 에러 내용이 출력된다.
1. 웹 브라우저에서 접속 시 403 error
CSRF verification failed. Request aborted
2. django log
Forbidden (Referer checking failed - https://kkjnginx.link/api/upload/ does not match any trusted origins.): /api/upload/
문제 해결을 위한 발자취
1. 처음엔 template에 csrf_token 태그를 안넣어줬나 봤더니 이미 넣어준 상태였다.
{% block content %} Upload Image {% csrf_token %} {{ form }} Upload Image {% endblock %}
2. 토큰 전송이 안되는지를 확인했는데 그것도 아니었다.
3. except 데코레이터를 추가하면 된다고 했지만, 좋은 방법은 아닌거 같아서 시도해보지 않았다.
from django.views.decorators.csrf import csrf_exempt from django.utils.decorators import method_decorator @method_decorator(csrf_exempt) def some_view(request): ...
4. settings.py 미들웨어 주석처리 또한 좋은 방법이 아닌거 같아서 시도하지 않았다.
해결 방법
1. CSRF_TRUSTED_ORIGINS 에 호스트네임을 추가해서 해결했다. - 링크
ALLOWED_HOSTS = ['django'] CSRF_TRUSTED_ORIGINS = ['kkjnginx.link']
from http://not-to-be-reset.tistory.com/552 by ccl(A) rewrite - 2021-12-21 16:00:35