Skip to content

Commit

Permalink
Merge pull request #49 from DongnaeFriend/feature/#41
Browse files Browse the repository at this point in the history
⚽Refactor #41: 연령대 및 성별 처리
  • Loading branch information
Juhyeok0202 authored Jul 29, 2023
2 parents 134f145 + 0065c62 commit b942dd7
Show file tree
Hide file tree
Showing 7 changed files with 102 additions and 50 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";
}

}
13 changes: 13 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,17 @@ public enum Age {
public String getAge() {
return this.age;
}

public static Age fromString(String strAge) {
if(strAge==""){
return null;
}

for(Age age : Age.values()){
if((age.getAge().charAt(0))==(strAge.charAt(0))){
return age;
}
}
return null;
}
}
12 changes: 12 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 @@ -3,9 +3,11 @@
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;

@Getter
@RequiredArgsConstructor
@Slf4j
public enum Gender {
MALE(0, "남성"),
FEMALE(1, "여성");
Expand All @@ -17,4 +19,14 @@ public enum Gender {
public String getGender() {
return this.gender;
}

public static Gender fromString(String strGender) {

for(Gender gender : Gender.values()){
if(gender.toString().equalsIgnoreCase(strGender)){
return strGender.equals("male")? Gender.MALE : Gender.FEMALE;
}
}
return null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -68,12 +68,15 @@ public HashMap<String, Object> getUserInfo(String access_Token) throws IOExcepti
String nickname = properties.get("nickname").toString();
String profileImage = properties.get("profile_image").toString();
String email = kakao_account.get("email").toString();
String gender = kakao_account.getOrDefault("gender","").toString();
String age = kakao_account.getOrDefault("age_range","").toString();

userInfo.put("id", id);
userInfo.put("nickname", nickname);
userInfo.put("profileImage", profileImage);
userInfo.put("email", email);

userInfo.put("age", age);
userInfo.put("gender", gender);

return userInfo;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.umc.DongnaeFriend.domain.user.service;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.umc.DongnaeFriend.domain.type.Age;
import com.umc.DongnaeFriend.domain.type.Gender;
import com.umc.DongnaeFriend.domain.type.YesNo;
Expand All @@ -14,6 +15,10 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.Optional;

Expand Down Expand Up @@ -60,22 +65,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", "").toString();
String strAge = userInfo.getOrDefault("age", "").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 +81,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 All @@ -120,5 +108,34 @@ public String createAccessTokenFromRefreshToken(String refreshToken) {
return accessToken;
}

public String kakaoGetCode() {


try {
String reqURL= "https://kauth.kakao.com/oauth/authorize?response_type=code&client_id=1ad317e194df665ca44dcb82d11a7093&redirect_uri=http://localhost:8080/callback";

URL url = new URL(reqURL);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");


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

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

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

ObjectMapper objectMapper = new ObjectMapper();
HashMap<String, Object> jsonMap = objectMapper.readValue(result, HashMap.class);

log.info(jsonMap.toString());
return "";
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
5 changes: 3 additions & 2 deletions src/main/resources/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,10 @@ logging:
# Settings for local
spring:
datasource:

url: jdbc:mysql://localhost:3306/dongnae?characterEncoding=UTF-8&serverTimezone=UTC&useLegacyDatetimeCode=false
username: dongnae
password: Tnqls9004^^
username:
password:
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
hibernate.ddl-auto: create
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 b942dd7

Please sign in to comment.