안녕하세요.
앱ID : 953756
로컬에서는 정상 작동되었으나 EC2 서버에 배포하고부터는 로그인이 되지 않습니다.
환경은 스프링부트, 리액트 이고 서버, 프론트 모두 로컬환경 일때만 정상적으로 작동합니다.
서버(로컬) - 프론트(로컬) = 정상작동
서버(http://13.209.xxx.xx:8080) - 프론트(로컬) = x
서버(http://13.209.xxx.xx:8080) - 프론트(http://3.34.xxx.xx:3000) = x
로컬에서 정상 응답시
비정상 응답시
코드, 스테이트 등은 카카오 서버로부터 잘 받아오나,
request 에는 JsessionId가 들어있지 않습니다.
302 에러가 내려온걸 더블클릭해서 보면 스프링 서버에는 정상적으로 카카오 로그인되고 응답값이 내려가는 상태입니다.
yml
spring:
security:
oauth2:
client:
registration:
kakao:
client-id:
# redirect-uri: http://localhost:3000/oauth/kakao
redirect-uri: http://3.34.xxx.xx:3000/oauth/kakao
authorization-grant-type: authorization_code
client-authentication-method: POST
client-name: KAKAO
scope:
- openId
- profile_nickname
- profile_image
- account_email
provider:
kakao:
authorization_uri: https://kauth.kakao.com/oauth/authorize
token_uri: https://kauth.kakao.com/oauth/token
user-info-uri: https://kapi.kakao.com/v2/user/me
user_name_attribute: id
useEffect(() => {
onLoading(true);
axios
.get(
`http://13.209.xxx.xx:8080/oauth/kakao?code=${code}&state=${state}`,
{
headers: { 'Content-Type': 'application/json' },
withCredentials: true,
},
)
.then(response => {
const { accessToken, refreshToken, memberId } = response.data;
auth.login(accessToken, refreshToken, memberId);
navigate('/');
onLoading(false);
})
.catch(() => {
onLoading(false);
});
}, []);
검색해보니 url 문제라고 하여 리다이렉트 url을 앞 주소를 제외한 뒷부분 /oauth/kakao 이런식으로 넣어서 해결되는 케이스를 보았습니다.
이걸 yml 파일에 설정하면 url 로 인식을 하지 못하고, 프론트 코드에 넣어도 마찬가지 입니다.
여러가지를 해보았는데 해결이 되지 않아 도움을 요청합니다.