Skip to content

Commit f27b62b

Browse files
committed
♻️ /revoke를 refresh토큰 기준으로 변경
1 parent 70de879 commit f27b62b

File tree

4 files changed

+25
-18
lines changed

4 files changed

+25
-18
lines changed

src/main/java/com/boggle_boggle/bbegok/config/properties/AppleProperties.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,11 @@ public String getAppleLoginUrl(String redirectUri) {
4949
}
5050

5151

52-
public String getAppleRevokeData(String accessToken) throws IOException {
52+
public String getAppleRevokeData(String refreshToken) throws IOException {
5353
return "client_id=" + aud
5454
+"&client_secret=" + createClientSecretKey()
55-
+"&token=" + accessToken
56-
+"&token_type_hint=access_token";
55+
+"&token=" + refreshToken
56+
+"&token_type_hint=refresh_token";
5757
}
5858

5959
public String generateAuthToken(String code) throws IOException {

src/main/java/com/boggle_boggle/bbegok/entity/user/User.java

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,13 @@ public class User {
3838
private String password;
3939

4040
@JsonIgnore
41-
@Column(name = "access_token", length = 512)
41+
@Column(name = "oauth2_access_token", length = 512)
4242
private String oauth2AccessToken;
4343

44+
@JsonIgnore
45+
@Column(name = "oauth2_refresh_token", length = 512)
46+
private String oauth2RefreshToken;
47+
4448
@Column(name = "email", length = 512, unique = true, nullable = true)
4549
@Size(max = 512)
4650
private String email;
@@ -105,14 +109,16 @@ protected User(
105109
RoleType roleType,
106110
LocalDateTime createdAt,
107111
LocalDateTime modifiedAt,
108-
String accessToken) {
112+
String accessToken,
113+
String refreshToken) {
109114
this.userId = userId;
110115
this.emailVerifiedYn = emailVerifiedYn;
111116
this.providerType = providerType;
112117
this.roleType = roleType;
113118
this.createdAt = createdAt;
114119
this.modifiedAt = modifiedAt;
115120
this.oauth2AccessToken = accessToken;
121+
this.oauth2RefreshToken = refreshToken;
116122
}
117123

118124

@@ -133,9 +139,10 @@ public static User createUser(
133139
@NotNull RoleType roleType,
134140
@NotNull LocalDateTime createdAt,
135141
@NotNull LocalDateTime modifiedAt,
136-
@NotNull String accessToken
142+
@NotNull String accessToken,
143+
@NotNull String refreshToken
137144
){
138-
return new User(userId, emailVerifiedYn, providerType, roleType, createdAt, modifiedAt, accessToken);
145+
return new User(userId, emailVerifiedYn, providerType, roleType, createdAt, modifiedAt, accessToken, refreshToken);
139146
}
140147

141148
public void updateNickName(String nickName){
@@ -153,7 +160,8 @@ public void updateGuestToUser(String latestVersion) {
153160
this.agreedVersion = latestVersion;
154161
}
155162

156-
public void updateAccessToken(String accessToken) {
163+
public void updateAccessToken(String accessToken, String refreshToken) {
157164
this.oauth2AccessToken = accessToken;
165+
this.oauth2RefreshToken = refreshToken;
158166
}
159167
}

src/main/java/com/boggle_boggle/bbegok/service/AppleService.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,7 @@ public User process(String code) {
6060
JSONParser jsonParser = new JSONParser();
6161
JSONObject jsonObj = (JSONObject) jsonParser.parse(appleProperties.generateAuthToken(code));
6262
String accessToken = String.valueOf(jsonObj.get("access_token"));
63-
String refresh_token = String.valueOf(jsonObj.get("refresh_token"));
64-
log.debug("%%%%%access_token : {}",accessToken);
65-
log.debug("%%%%%refresh_token : {}",refresh_token);
63+
String refreshToken = String.valueOf(jsonObj.get("refresh_token"));
6664

6765
// ID TOKEN을 통해 회원 고유 식별자 받기
6866
SignedJWT signedJWT = SignedJWT.parse(String.valueOf(jsonObj.get("id_token")));
@@ -81,9 +79,9 @@ public User process(String code) {
8179
" account. Please use your " + savedUser.getProviderType() + " account to login."
8280
);
8381
}
84-
savedUser.updateAccessToken(accessToken);
82+
savedUser.updateAccessToken(accessToken, refreshToken);
8583
} else {
86-
savedUser = createAppleUser(userId,accessToken);
84+
savedUser = createAppleUser(userId,accessToken, refreshToken);
8785
userSettingsRepository.saveAndFlush(UserSettings.createUserSettings(savedUser));
8886
}
8987

@@ -125,7 +123,7 @@ public String determineSuccessRedirectUrl(String accessToken, String baseUrl) {
125123
.build().toUriString();
126124
}
127125

128-
private User createAppleUser(String userId, String accessToken) {
126+
private User createAppleUser(String userId, String accessToken, String refreshToken) {
129127
log.debug("# ACCESS TOKEN =>>>>> {}",accessToken);
130128
LocalDateTime now = LocalDateTime.now();
131129
User user = User.createUser(
@@ -135,7 +133,8 @@ private User createAppleUser(String userId, String accessToken) {
135133
RoleType.GUEST,
136134
now,
137135
now,
138-
accessToken
136+
accessToken,
137+
refreshToken
139138
);
140139

141140
return userRepository.saveAndFlush(user);

src/main/java/com/boggle_boggle/bbegok/service/RevokeService.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,13 @@ public void deleteAccount(String userId) throws IOException {
5050

5151
switch (user.getProviderType()) {
5252
case APPLE -> deleteAppleAccount(user);
53-
case GOOGLE -> deleteGoogleAccount(user);
54-
case KAKAO -> deleteKakaoAccount(user);
53+
//case GOOGLE -> deleteGoogleAccount(user);
54+
//case KAKAO -> deleteKakaoAccount(user);
5555
}
5656
}
5757

5858
public void deleteAppleAccount(User user) throws IOException {
59-
String data = appleProperties.getAppleRevokeData(user.getOauth2AccessToken());
59+
String data = appleProperties.getAppleRevokeData(user.getOauth2RefreshToken());
6060
sendRevokeRequest(data, ProviderType.APPLE, null);
6161
}
6262

0 commit comments

Comments
 (0)