Cors - python flask on Dokku

less than 1 minute read

파이썬 개 똥언어

서버가 오류나뒈지면서 에러메시지 처리도 제대로 안되고
코드 중간에 오류나면 오류는 처먹고 뒤져버린다

솔직히 연습용으로는 좋다. 구석구석 에러가 나니까 개발할 때 프로토콜은 잘 배울 수 있겠다
라이브러리도 죄다 쓰레기라 하나하나 손봐서 써야되고 커스텀도 불가능한 구조로 만들어진 경우가 많아 pip고 뭐고 그냥 복사붙여넣기 해서 수정해야 하는 경우가 많다

이런 심플함(좆도없음)이 파이썬의 장점이라고 하니까

이쓔상황

Dokku에서 돌리는 Flask 서버에서 Cors가 난다고 한다.
swagger에서는 괜찮은데 react 클라이언트에서만 발생

문제는 뭘까? 의심가는 부분은..

  1. flask cors가 쓰레기라 제대로 동작을 안한다
  2. nginx reverse proxy가 제대로 일을 못한다
  3. 클라이언트가 코딩을 제대로 못했다
  4. 리엑트는 원래 병신 쓰레기라 아무 오류나 나온다

1번체크

curl \
--verbose \
--request OPTIONS \
'https://dokku-api-server' \
--header 'Origin: http://localhost:3000' \
--header 'Access-Control-Request-Headers: Origin, Accept, Content-Type' \
--header 'Access-Control-Request-Method: GET'

2번체크

/home/dokku/api-server/nginx.conf

별 이상없어보인다

3번체크

실행…
서버 호출을 잘못하기는 했는데…
서버오류가 cors가 아닌데 cors라고 나오는게 문제고

4번체크

????

추가체크

서버로그를 보니 flask jwt인증부분을 손을 댔는데 여기서 오류가 난 모양…
헤더가 안 들어올 때 401을 내려줘야하는데 그러질 못하고 있다
서버에서 응답이 없으면 cors가 뜨나? http 프로토콜문제인지 리엑트가 원래 병신인지 잘 모르겠다.

리엑스에서 cors오류발생시 리엑트와 플라스크서버가 모두 병신일 수 있다는걸 기억하자