innovationacademy-kr / 24hane-frontend

42서울 출입기록 관리 서비스
https://24hoursarenotenough.42seoul.kr
9 stars 5 forks source link

jwt 토큰으로 인증변경 #36

Closed 6mn12j closed 1 year ago

6mn12j commented 2 years ago
6mn12j commented 2 years ago

문제상황

서버측에서 42oauth 인증을 끝낸 후 클라이언트 측으로 보내주는 응답 값에는 set-cookie헤더가 있지만 브라우저에서 쿠키를 확인해 보면 쿠키가 없다. 로컬에서는 잘 되는데 개발 서버에서는 문제가 발생하고 있다.

스크린샷 2022-10-28 오전 5 00 13 스크린샷 2022-10-28 오후 4 24 31

시도

1. 도메인 문제? 필터링된 쿠키들까지 포함하여 확인해 보니 set-cookie로 응답 받은 쿠키가 필터링 된 상황 인걸 알 수 있었다. 필터링 되는 기준을 안다면 해당 문제를 해결 할 수 있다고 생각했다.

스크린샷 2022-10-28 오후 4 02 41

클라이언트 측에서 확인되는 쿠키들과의 다른점은 도메인 설정 값이 달랐다. 도메인을 키워드로 서치해 봤다.

mdn문서를 확인해 보니 도메인이 다르면 무시해 버린다고 한다. 서버측 cookie가 도메인을 설정하지 않으면 디폴트 값으로 호스트(벡엔드) 가 된다고 한다. 클라이언트 측에서 확인되는 쿠키들은 하위 도메인이 포함된 부분 이였다. 벡엔드측에서 클라이언트 측 도 포함되게 도메인을 설정 후에 보내주면 될거 같다.

스크린샷 2022-10-28 오후 4 03 27

결과

스크린샷 2022-10-28 오후 7 11 09

호스트 url(벡엔드 측) 과 도메인이 일치하지 않아서 set-cookie가 되지 않는 부분이 생겼다.

현재 벡엔드와 프론트는 cross-origin 이고 same-site이다.

TODO

프론트, 벡엔드 두개다 호환되는 도메인을 이용하여야 해당 문제를 해결할 수 있을거 같다.

참고

https://web.dev/same-site-same-origin/

6mn12j commented 2 years ago

해결

TODO

6mn12j commented 1 year ago

문제

해결