Skip to content

Commit

Permalink
⚽FEAT #41: 성별 및 나이대 변환
Browse files Browse the repository at this point in the history
  • Loading branch information
Juhyeok0202 committed Jul 28, 2023
1 parent 19cd7d2 commit d9991a1
Show file tree
Hide file tree
Showing 6 changed files with 58 additions and 49 deletions.
46 changes: 26 additions & 20 deletions src/main/java/com/umc/DongnaeFriend/KakaoTokenController.java
Original file line number Diff line number Diff line change
Expand Up @@ -44,36 +44,42 @@ public String kakologin(Model model, HttpServletResponse response) {
@GetMapping("/callback")
public String callback(Model model, @RequestParam("code") String code) throws IOException {

//------kakao POST 요청------
String reqURL = "https://kauth.kakao.com/oauth/token?grant_type=authorization_code&client_id=8427ba9114a5ecb09621710469748441&code=" + code;
URL url = new URL(reqURL);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
try {
//------kakao POST 요청------
String reqURL = "https://kauth.kakao.com/oauth/token?grant_type=authorization_code&client_id=1ad317e194df665ca44dcb82d11a7093&code=" + code;
URL url = new URL(reqURL);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");


BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));

String line = "";
String result = "";
String line = "";
String result = "";

while ((line = br.readLine()) != null) {
result += line;
}
while ((line = br.readLine()) != null) {
result += line;
}

ObjectMapper objectMapper = new ObjectMapper();
Map<String, Object> jsonMap = objectMapper.readValue(result, new TypeReference<Map<String, Object>>() {
});

ObjectMapper objectMapper = new ObjectMapper();
Map<String, Object> jsonMap = objectMapper.readValue(result, new TypeReference<Map<String, Object>>() {
});
String accessToken = (String) jsonMap.get("access_token");

String accessToken = (String) jsonMap.get("access_token");
//-------------------------------------------------서버 로그인----------------------------------------------------

//-------------------------------------------------서버 로그인----------------------------------------------------
HashMap<String, Object> userInfo = kakaoService.getUserInfo(accessToken);
UserDto.Response response = userService.userValidation(userInfo);

HashMap<String, Object> userInfo = kakaoService.getUserInfo(accessToken);
UserDto.Response response = userService.userValidation(userInfo);
model.addAttribute("token","Bearer "+ response.getAccessToken());

model.addAttribute("token","Bearer "+ response.getAccessToken());
return "html/token";
} catch (Exception e) {
e.printStackTrace();
}
return null;

return "html/token";
}

}
10 changes: 10 additions & 0 deletions src/main/java/com/umc/DongnaeFriend/domain/type/Age.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,14 @@ public enum Age {
public String getAge() {
return this.age;
}

public static Age fromString(String strAge) {

for(Age age : Age.values()){
if(age.getAge().equals(strAge)){
return age;
}
}
throw new IllegalArgumentException("No matching type for [" + strAge + "]");
}
}
10 changes: 10 additions & 0 deletions src/main/java/com/umc/DongnaeFriend/domain/type/Gender.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,14 @@ public enum Gender {
public String getGender() {
return this.gender;
}

public static Gender fromString(String strGender) {

for(Gender gender : Gender.values()){
if(gender.getGender().equals(strGender)){
return gender;
}
}
throw new IllegalArgumentException("No matching type for [" + strGender + "]");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -60,22 +60,13 @@ public User userRegister(HashMap<String, Object> userInfo) {

Long kakaoId = (Long) userInfo.get("id");

// Optional<String> gender = Optional.ofNullable(userInfo.get("gender").toString());
// String strGender = "";
// log.info("Gender : {}", gender.get());
// if(gender.get()=="F"){
// strGender="여성";
// }else {
// strGender = "남성";
// }
// log.info("strGender : {}", strGender);
//
//
// Optional<String> age = Optional.ofNullable(userInfo.get("age").toString());
// String[] ageRange = age.get().split("-");
//
//
// // refreshToken userId를 claim 으로 생성 뒤, User의 필드에 넣고 User를 저장
String strGender = userInfo.getOrDefault("gender", null).toString();
String strAge = userInfo.getOrDefault("age", null).toString();

Gender gender = Gender.fromString(strGender);
Age age = Age.fromString(strAge);


String refresh_Token = jwtTokenProvider.createRefreshToken((Long) userInfo.get("id"));

return userRepository.save(
Expand All @@ -85,16 +76,8 @@ public User userRegister(HashMap<String, Object> userInfo) {
//
// )
.email(email)
//TODO : Gender 결정[O]
.gender(
// Gender.valueOf(strGender)
Gender.MALE
)
//TODO : Age 결정[O]
.age(
// Age.valueOf(ageRange[0]+"대")
Age.AGE20
)
.gender(gender)
.age(age)
.townCert(YesNo.NO)
.townCertCnt(0)
.infoCert(YesNo.NO)
Expand Down
4 changes: 2 additions & 2 deletions src/main/resources/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ logging:
# Settings for local
spring:
datasource:
url: jdbc:mysql://localhost:3306/dongnae?characterEncoding=UTF-8&serverTimezone=UTC&useLegacyDatetimeCode=false
url: jdbc:mysql://localhost:3306/security?characterEncoding=UTF-8&serverTimezone=UTC&useLegacyDatetimeCode=false
username: root
password: qwe335577!
password: Wngurdl1!
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
hibernate.ddl-auto: update
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/templates/html/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<body>
<div class="wrapper" style="display: flex; flex-direction: column">
<h1>동네친구 카카오 로그인</h1>
<a href="https://kauth.kakao.com/oauth/authorize?response_type=code&client_id=8427ba9114a5ecb09621710469748441&redirect_uri=http://localhost:8080/callback">
<a href="https://kauth.kakao.com/oauth/authorize?response_type=code&client_id=1ad317e194df665ca44dcb82d11a7093&redirect_uri=http://localhost:8080/callback">
<img src="https://developers.kakao.com/docs/static/image/ko/pc/kakaologin.png" alt="kakoLogin" style="cursor: pointer; width: 400px; height: 200px;">
</a>

Expand Down

0 comments on commit d9991a1

Please sign in to comment.