포스트맨으로 회원가입 요청을 시험해보던 중
postman SRF verification failed. Request aborted
이런 오류가 발생했다. 찾아보니 csrf token 관련 오류라고 한다. 토큰을 매번 갱신하여 데이터를 요청해야 하는데, html 로 할 때야 {% csrf token %} 으로 해줬지만 postman 은 그렇지 못하니 발생하는 것이다.
https://hayeon1549.tistory.com/35
를 참고해서 위의 에러는 없어졌는데, 또 새로운 에러가 생겼다.
Forbidden (CSRF cookie not set.)
접근이 금지되었다는 것으로 보아 해당 유저의 권한이 확인되지 않았다는 말 같다. 나는 postman 으로 확인만 하는 것이기 때문에 당장은 csrf token 설정이 필요하지 않아 그냥 데코레이터를 통해 csrf exempt 를 하여 해결했다.
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt # 여기
def sign_up_view(request):
if request.method == 'GET':
user = request.user.is_authenticated
if user:
return redirect('/')
else:
return render(request, 'user/signup.html')
elif request.method == 'POST':
username = request.POST.get('username','')
password = request.POST.get('password','')
password2 = request.POST.get('password2', '')
email = request.POST.get('email','')
if (password != password2):
return render(request,'user/signup.html', {'error' : '입력하신 비밀번호가 서로 다릅니다!'})
else:
ex_user = get_user_model().objects.filter(username=username)
if ex_user:
return render(request, 'user/signup.html', {'error': '존재하는 아이디 입니다!'})
else:
UserModel.objects.create_user(username=username, password=password, email=email)
return redirect('/todo')