session 방식 로그인에서 브라우저가 세션 쿠키를 저장하지 않는 문제 해결

srp·2023년 11월 23일
0

인터넷을 아무리 뒤져보고 챗쌤한테 물어봐도 해결이 안되어 좌절해 있던 와중 해결법을 알게 되어 공유한다. 허탈하게 간단하다. 나처럼 삽질하는 사람이 있다면 이걸 보고 부디 시간을 절약하길...

한줄요약

크롬에서는 서버와 클라이언트의 도메인이 다르면 자동으로 쿠키를 비활성화한다. 이걸 해결하려면 서버단에서 SameSite=None, Secure=True를 헤더에 붙여서 보내야 한다.

문제 설명

현재 우리 서비스는 restAPI 언저리의 무언가를 구현한 flask 서버가 heroku로 배포되어 있고, 프론트는 웹과 앱을 한큐에 개발하겠다는 야심찬 포부로 flutter로 개발하고 있다. JWT 잘못쓰면 코딩인생 망한다는 무서운 소식을 듣고 회원인증 기능은 session 방식을 사용했다.
문제는 로그인을 했을 때 분명 set-Cookie 헤더에 session정보가 전달되는데, 브라우저가 다음 api call에서는 session정보를 붙여서 보내질 않는다는 것이었다.

원인

구글링+챗지피티질로 찾은 바에 의하면 CORS에 관련된 무언가가 원인임이 유력했다. 클라이언트와 서버의 도메인이 달랐기 때문이다. 하지만 대부분 flask에서 CORS(app) 을 추가하면 해결된다거나 flutter에서 dio 패키지를 사용하면 된다는 식이었다.

작성중...

작성중이었는데 잘 정리한 글을 발견했다.
앞으론 그냥 구글링하지 말고 벨로그에서 찾아야겠다.

profile
멧비둘기

0개의 댓글