로드밸런서를 쓰는 다중 서버환경에서 카카오 로그인

안녕하세요!
스프링 시큐리티와 jwt를 이용해서 로그인을 구현했습니다.
로드밸런서를 이용해서 ec2 두대를 사용하고 있습니다. ec2 두 대 중에 한대를 끄면, 즉 로드밸런서를 쓰면서 한대만 운영할때는 카카오 로그인이 잘 됩니다.
그런데 두대를 운영하면 로그인을 요청한 서버와 카카오로부터 응답받은 서버가 달라서 그런지 에러가 나옵니다. 이럴 수 있는건가요 ??
그래서 한번에 로그인 시도가 안되고 여러번 로그인 시도를 하고 로그인 될때가 많습니다.
그렇기에 현재는 로그인 전용 ec2로 뺀 상태입니다.

궁금한건 로드밸런서를 사용하는 다중서버에서는 카카오 로그인이 정상적으로 작동하지 않나요 ?

안녕하세요.

카카오 로그인은 LB에 영향을 받지 않습니다.

카카오 로그인 시, 사용자 동의 과정이 끝나면 사용자 브라우저에서 redirect_uri 으로 리디렉션될 뿐입니다.

로그인이 되지 않는다면 redirect_uri 에서 서비스측의 추가 구현된 로직에 원인이 있을것 같습니다.

서비스측에서 로그인 과정중 서비스측의 클러스터링 되지 않은 세션을 사용하고 계시진 않은지 확인 부탁드립니다.


추가로, 다른 이슈가 없는지 확인하기 위해 앱 ID 부탁 드립니당

앱 ID : 651897

제가 아는게 적어서 이유를 잘 모르겠습니다 ㅠㅠ
리다이렉트 url이 LB로 되있거든요. 그래서 그런걸까요 ??
LB 에서 서버 1대 돌릴땐 문제가 전혀 없는데, 서버2대로 돌리면 에러가 나오네요.

스크린샷 2023-04-17 오후 12.45.09
스크린샷 2023-01-02 오후 5.36.21(2)

첨부 이미지를 보면 모두 서비스측 주소로 redirect_uri 로 정상 리디렉션 한 뒤
kakao?error 로 다시 리디렉션 되고 있습니다.

주소패턴이 spring oauth 사용하는 것 처럼 보이는데요
때문에, 서비스측 인가 과정에 오류 로그가 있을 것같은데요
관련하여 확인 가능하실까요?

흑 ㅠ 현재는 oAuth 전용 ec2로 연결해놔서 확인이 어려울것같네요. 밤 늦게 설정 다시 해서 확인해 보겠습니다.

로드밸런서에 2대의 서버로 운영중일때,
1번 서버에서 로그인 요청을 보내고, 카카오 응답이 2번 서버로 들어가도 전혀 상관이 없는건가요 ??
카카오 서버에서 Redirect_uri로 인가코드 보낸게 1번이 아니라 2번으로 가면 실패하는거 아닌가요 ??

카카오 로그인 시, 최종적으로 사용자 브라우저를 통해 인가코드만 서비스측으로 전달합니다.(302)

이후, 처리는 서비스측 로직으로 카카오에서 관여할수 없는 부분입니다.
만약, 서비스측 로직에서 request attribute와 같은 세션에 일시적으로 데이터를 저장한 뒤 사용하고 계시다면 이곳에서 오류가 발생할수 있습니다.

참고 부탁드립니다.

1개의 좋아요