하프빌런
20
2020-07-22 17:30:53
3
582

Spring REST + OAuth2 + JWT 로그인을 구현중인데 쿠키발급에 문제가 있어서 질문드립니다.


안녕하세요 새내기 개발자입니다.

현재 프론트는 리액트, 백엔드를 스프링으로 oauth2 google 로그인 구현중에 있습니다.


막히는 부분이

사용자가 로그인 클릭 -> 구글 로그인 새탭을 띄우고 로그인 -> 콜백 엔드포인트로 구글 code 가 들어옴 -> code를 이용해서 엑세스 토큰을 획득 ->  jwt를 사용자에게 발급 (!문제!) -> 사용자는 홈으로 리다이렉트


현재 엑세스 토큰을 받았으나 jwt를 쿠키에 담으려는 와중

도메인이 다른 백엔드, 프론트엔드 간에 쿠키를 발급하는 과정에서 막혔습니다.

로컬환경은 127.0.0.1:3000 은 프론트  127.0.0.1:8080 은 스프링인상태고

리다이렉트로 8080에 대한 쿠키는 발급이 가능하나 이 쿠키를 3000에 접속한 클라이언트가 사용할수 없으니 의미가 없습니다.

클라이언트도 쿠키를 확인해 로그인상태를 띄워줘야 할텐데, 3000에 토큰을 발급하는 방법을 모르겠습니다.


그리고 저런 흐름이 맞는지도 잘 모르겠습니다. 일단되라식으로 만들고있는데...

oauth에서 2주째 막혀있습니다..



:) okky 구글 로그인 되게 깔끔하네요 새탭도 안띄우고 리다이렉트 2번으로 끝...

도와주세요 고수님들...



0
  • 답변 3

  • 하프빌런
    20
    2020-07-22 17:35:14

    아 클라이언트 리액트 앱은 엔진엑스를 통해서 뿌려주고 있습니다.

  • rebwon
    433
    2020-07-22 18:25:52

    일단 cors 셋팅이 되셔야 할 거 같구요. OAuth2 Provider로 부터 엑세스 토큰이 발급 된 상태시라면, 커스텀한 successHandler를 만드셔서 oauth2 로그인이 성공했을 때 jwt 토큰을 발급해서 리액트쪽으로 넘기시면 되는 부분인거 같아요.

  • 부적합한열유형.
    624
    2020-07-22 21:22:08

    프론트 백앤드 나뉘었다면 프론트쪽에서 로그인 인증 response 결과에 담긴 토큰을 직접 httponly 쿠키로 생성 해주면 안되나요?

  • 로그인을 하시면 답변을 등록할 수 있습니다.