Skip to content

Commit 5981346

Browse files
committed
[feat] 로그아웃 #8
1 parent 8af7898 commit 5981346

File tree

3 files changed

+28
-4
lines changed

3 files changed

+28
-4
lines changed

src/main/java/org/dfbf/soundlink/domain/user/controller/UserController.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,10 @@ public ResponseResult updateUser(/*@AuthenticationPrincipal id: Int, */@RequestB
5757
public ResponseResult login(@RequestBody LoginReqDto loginReqDto, HttpServletResponse response) {
5858
return userService.login(loginReqDto, response);
5959
}
60+
61+
@PostMapping("/logout")
62+
@Operation(summary = "로그아웃", description = "로그아웃 API")
63+
public ResponseResult logout(HttpServletResponse response) {
64+
return userService.logout(response);
65+
}
6066
}

src/main/java/org/dfbf/soundlink/domain/user/service/UserService.java

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,8 +204,8 @@ public ResponseResult login(LoginReqDto loginReqDto, HttpServletResponse respons
204204
String accessToken = jwtProvider.createAccessToken(user.getUserId());
205205
String refreshToken = jwtProvider.createRefreshToken(user.getUserId());
206206

207-
System.out.println("Access Token: " + accessToken);
208-
System.out.println("Refresh Token: " + refreshToken);
207+
// System.out.println("Access Token: " + accessToken);
208+
// System.out.println("Refresh Token: " + refreshToken);
209209

210210
//헤더에 refreshToken 추가
211211
ResponseCookie refreshCookie = getRefreshToken(refreshToken);
@@ -220,7 +220,26 @@ public ResponseResult login(LoginReqDto loginReqDto, HttpServletResponse respons
220220
System.out.println("[ERROR] " + e.getMessage());
221221
return new ResponseResult(ErrorCode.DB_ERROR);
222222
}
223+
}
224+
225+
//로그아웃
226+
public ResponseResult logout(HttpServletResponse response) {
227+
try {
228+
//토큰 삭제
229+
ResponseCookie refreshCookie = ResponseCookie
230+
.from("REFRESHTOKEN", "") // 추후 토큰값 추가
231+
.domain("localhost")
232+
.path("/")
233+
.httpOnly(true)
234+
.maxAge(0)
235+
.build();
236+
237+
response.setHeader("Set-Cookie", refreshCookie.toString());//삭제 요청
238+
return new ResponseResult(ErrorCode.SUCCESS);
223239

240+
} catch (Exception e) {
241+
return new ResponseResult(ErrorCode.DB_ERROR,"로그아웃 중 오류가 발생했습니다.");
242+
}
224243
}
225244

226245

src/main/java/org/dfbf/soundlink/global/auth/JwtProvider.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public class JwtProvider {
1717
private long ACCESS_EXPIRATION_TIME;
1818

1919
@Value("${REFRESH_TOKEN_EXPIRATION_TIME}")
20-
private long REFRESH_EXPIRATION_TIME;
20+
private long REFRESH_EXPIRATION_TIME;
2121

2222
//시크릿 키 생성
2323
private final SecretKey SECRET_KEY = Keys.secretKeyFor(SignatureAlgorithm.HS256);;
@@ -49,5 +49,4 @@ public String createRefreshToken(long userId) {
4949
return refreshToken;
5050
}
5151

52-
5352
}

0 commit comments

Comments
 (0)