-
Notifications
You must be signed in to change notification settings - Fork 1
[Week2 Day5] Auth 트러블 슈팅: Axios CORS
Youngho Kim edited this page Nov 19, 2022
·
1 revision
로그인 시도 시 CORS 오류가 발생하여 로그인 불능 상태가 됨.
-
경고창 오류를 살펴보니 XMLHttpRequest가 반려되었다는 메세지를 확인함.
-
사용자가 직접 해당 링크에 접근하면 OAuth 로그인이 가능한 것을 확인함.
-
오류를 추적해보니
axios
가 Redirection을 받으면 해당 주소로 다시 Request를 보내며, 그렇게axios
가 보낸 Request를 Github에서 거부하여 발생한 오류였다. -
axios
가 Redirect 응답을 받았을 때 재요청을 하지 않도록maxRedirects
옵션을 걸어보았지만, 브라우저에서는 해당 옵션을 사용할 수 없었음. -
passport-github
에서 OAuth 시작을 위해 리다이렉션 응답을 보낼 때, 응답 유형을 변경해보려 했지만 그러한 옵션이 없어 실패함. -
axios
에 대해intercept
를 활용해보려 했지만, 다른 좋은 방법이 있을까 하여 보류함. -
다만 현재 상황에서는 로그인만 가능하다면 로그인한 사용자가 재로그인하는 경우를 방지하기만 하면 되었기에, 백엔드 영역에서 그러한 사용자가 접근할 경우 강제로 다른 페이지로 리다이렉트하도록 코드를 수정하고, 프론트 영역에서는
axios
대신에<a>
태그를 이용하여 로그인을 시도하는 것으로 변경하기로 합의함.
- FE:
axios
를 사용하여 접근 주소를 받아오는 대신에, a 태그로 로그인 시도. - BE: 기본의 로그인 사용자를 거부하는 Guard를 변경하여
400
대신 메인 페이지로 리다이렉션하도록 수정하였고, 따라서 로그인 사용자가 재로그인을 시도하면 해당 Guard로 차단하도록 수정함.
-
axios
가 브라우저에서 사용할 때 리다이렉션 요청을 받으면 받은 주소로 다시 요청을 보낸다. (maxRedirects 옵션이 무효화된다.) -
axios
의intercept
의 존재 -
Guard
에서도Response
객체로 Redirect 요청을 보내어 Redirection을 요구할 수 있음.
데일리 스크럼
- [Week1-Day1] 팀 빌딩
- [Week1-Day2] 데일리 스크럼
- [Week1-Day3] 데일리 스크럼
- [Week1-Day4] 데일리 스크럼
- [Week1-Day5] 데일리 스크럼
- [Week2-Day1] 스프린트 계획 회의
- [Week2-Day2] 데일리 스크럼
- [Week2-Day3] 데일리 스크럼
- [Week2-Day4] 데일리 스크럼
- [Week3-Day1] 스프린트 계획 회의
- [Week3-Day2] 데일리 스크럼
- [Week3-Day3] 데일리 스크럼
- [Week3-Day4] 데일리 스크럼
- [Week4-Day1] 스프린트 계획 회의
- [Week4-Day2] 데일리 스크럼
- [Week4-Day3] 데일리 스크럼
- [Week4-Day4] 데일리 스크럼
- [Week5-Day1] 스프린트 계획 회의
- [Week5-Day2] 데일리 스크럼
- [Week5-Day3] 데일리 스크럼
- [Week5-Day4] 데일리 스크럼
- [Week6-Day1] 스프린트 계획 회의
- [Week6-Day2] 데일리 스크럼
- [Week6 Day3] 데일리 스크럼
- [Week6 Day4] 데일리 스크럼