web/django

GraduArt backend 구현 중에 겪은 문제 및 trouble shooting

민사민서 2024. 11. 6. 02:21

디자인이 이쁘고 퍼블리슁 팀이 갈려나갔어요..

백도 분발해야지,, 너무 바빠서 일주일에 하루이틀밖에 투자 못하지만 짬짬이 로그를 남기는 게 좋겠다

아마 이 글 하나 임시저장 해두고 생각나면 내용을 추가하지 않을까 싶음

 

1. 장고 custom jwt authentication + custom user

 

~~

 

2. allowany vs. isauthenticated decorator

 

~~

 

3. db 디자인, db 접근 관련 성능 고려

 

~~

 

4. 구글 로그인 using jwt token

 

 

----- 여기부터는 직접 프론트 데모 만들어서 테스팅하며 마주친 trouble shooting ----

 

5. 프론트와 연결 시 oauth 로그인에서 애맥었던 점

백엔드로 리다이렉트 바로하면 hash(#) 이후의 token 가져올 방법 없음

dummy page를 만들어야겠더라

 

6. broken pipe error 및 토큰 저장 안 됨

broken pipe error => AuthContext 초기화 과정과 구글 로그인 콜백 처리 간 동시실행

 

문제 시나리오:

구글 로그인 버튼 클릭 → 구글 인증 페이지로 리다이렉트
구글 인증 완료 → 콜백 URL로 리다이렉트
AuthContext 마운트 → /auth/user/ API 호출 (이때 아직 토큰이 없음)
토큰 없음 → 401 에러 → 토큰 리프레시 시도
리프레시 토큰도 없음 → 400 에러
동시에 GoogleCallback 컴포넌트에서 토큰 설정 시도
이 과정에서 connection이 끊어지면서 Broken pipe 에러 발생

 

=> 구글 콜백 처리 중에는 초기 인증 체크를 건너뛰도록 하자

 

7. Invalid options object. Dev Server has been initialized using an options object that does not match the API schema.

어이없는 에러

https://velog.io/@black-pepper/Invalid-options-object.-Dev-Server-has-been-initialized-using-an-options-object-that-does-not-match-the-API-schema