인프런 커뮤니티 질문&답변

장원익님의 프로필 이미지
장원익

작성한 질문수

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Gateway와 set-Cookie 에 대한 질문입니다.

작성

·

1K

0

안녕하세요 강사님 해당 강의를 통해서 엄청난 꺠달음과 영감을 얻게되어 감사하다는 말씀을 먼저 올리고싶습니다.
제가 해당 강의를 통해서 성장을 하여 감히 마이크로서비스를 이용해서 프로젝트를 진행하고 있습니다.
하지만 프로젝트를 진행하다 보니 몇일 동안 해결할 수 없는 문제와 마주하게 되어 이렇게 문의 드립니다.

우선 Spring Cloud Gateway 가 존재하고 User-Service 가 그 뒤에 위치해 있습니다.

User-Service 에서는 사용자가 로그인을 한다면 access_token 과 refresh_token 을 쿠키에 담아서 반환합니다.
그리고 로그아웃을 한다면 access_token 과 refresh_token 의 쿠키 값에 null 을 넣고 expires 를 과거로 만들어 만료되도록 합니다.

Front 에서는 로그인을 수행하면 access_token 과 refresh_token 을 잘 받아서 브라우저에 저장하는 것을 확인하였습니다.

로그아웃을 수행한다면 응답으로 set-cookie 를 잘 받아오는 것도 확인을 하였습니다.

- access_token=; expires= 1960 00:00:00 ... httpOnly;
- refresh_token=; expires= 1960 00:00:00... httpOnly;

하지만 실제 브라우저에서는 쿠키가 지워지지 않더라구요..
axios의 credential 과 gateway 에서의 cors filter 도 설정을 잘 하였습니다.

실제 프로젝트 소스는 아래에 있습니다.

- User-Service :: https://github.com/dhslrl321/PCUSS-User-Service
- Gateway Service :: https://github.com/dhslrl321/PCUSS-Gateway-Server
- Front 비동기 통신 코드 :: https://github.com/dhslrl321/PCUSS-Official-Site/blob/master/client/services/authService.js
- Front axios 모듈 :: https://github.com/dhslrl321/PCUSS-Official-Site/blob/master/client/utils/api.js

답변 2

0

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다. 

셀프 답변을 주셨네요. 말씀하신 내용으로 환경구축이었는데, 완성되지 전에 답변을 찾으셨다고 하니 다행입니다. 더불어 답변이 늦어 죄송합니다.

추가로 관련 내용은 아니지만, 아래 게시물도 참고해 보시기 바랍니다. 

https://www.inflearn.com/questions/241235

https://www.inflearn.com/questions/217873

말씀하신 후속 강의는 현재 콘텐츠(교안) 준비 중인데, 쉽게 마무리가 안되네요. 그래도 빠른시일내에 준비하도록 하겠습니다. 

감사합니다. 

0

장원익님의 프로필 이미지
장원익
질문자

문제의 원인을 찾았습니다!

제가 이전에 테스트를 했던 환경에서는 Gateway 가 없었고 Gateway 를 도입하니 문제가 발생했다고 생각했습니다.

하지만 문제는 Gateway가 아니라 쿠키를 생성할 때 동일한 Path 를 지정해주지 않아서 발생하는 문제였습니다!

신규 강의 오픈으로 바쁜 와중에 번거롭게 해서 죄송합니다 ㅠㅠ

다음 강의도 기대하고 있겠습니다 !

장원익님의 프로필 이미지
장원익

작성한 질문수

질문하기