안녕하세요! (앱 아이디 : 184332)
REST API > /v2/user/me 를 이용해서 고객 정보를 얻은 뒤 카카오 로그인을 구현하고 있습니다.
그 중 id값을 받아오는데 이미 회원가입한 고객이 로그인 시도를 할 때
id값이 바뀌어서 넘어오는 현상이 있습니다. (그래서 정보가 맞지 않아 로그인이 불가합니다ㅠㅠ)
2022.09.23 10:16:39 당시엔 2440595015 값으로 회원가입 하셨는데
2023.01.02 16:43:36 로그인 시도 시 2586957169 값이었으며
2023.01.02 16:47:08 로그인 시도 시에는 2605736639 값으로 넘어왔습니다.
id값이 바뀌는 원인을 알 수 있을까요?
아래는 제가 짠 함수입니다. 확인 부탁드립니다ㅠㅠ
@Override
public HashMap<String, Object> getKaKaoUserInfo(Map<String, Object> commandMap) {
HashMap<String, Object> userInfo = new HashMap<>();
String reqURL = "https://kapi.kakao.com/v2/user/me";
try {
URL url = new URL(reqURL);
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Authorization", "Bearer " + StringUtil.getString(commandMap.get("accessToken")));
int responseCode = conn.getResponseCode();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line = "";
String result = "";
while ((line = br.readLine()) != null) {
result += line;
}
JsonParser parser = new JsonParser();
JsonElement element = parser.parse(result);
JsonElement snsId = element.getAsJsonObject().get("id");
JsonObject kakao_account = element.getAsJsonObject().get("kakao_account").getAsJsonObject();
String email = StringUtil.getString(kakao_account.getAsJsonObject().get("email"));
String ci = StringUtil.getString(kakao_account.getAsJsonObject().get("ci"));
String birthyear = StringUtil.getString(kakao_account.getAsJsonObject().get("birthyear"));
String birthday = StringUtil.getString(kakao_account.getAsJsonObject().get("birthday"));
userInfo.put("snsId", snsId);
userInfo.put("email", email);
userInfo.put("ci", ci);
userInfo.put("birthyear", birthyear);
userInfo.put("birthday", birthday);
logger.info("############## getKaKaoUserInfo = " + userInfo);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return userInfo;
}