Skip to content

Commit

Permalink
✅ 토큰 조회
Browse files Browse the repository at this point in the history
  • Loading branch information
tjdals4716 committed Jul 25, 2024
1 parent e2a9bef commit 3c6845e
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,16 @@ public ResponseEntity<Long> refreshToken(@AuthenticationPrincipal UserDetails us
return ResponseEntity.ok(remainingTime);
}

//유저 토큰 정보 조회
@GetMapping("/token/{uid}")
public ResponseEntity<JWTDTO> getUserWithTokenInfo(@PathVariable String uid, @RequestHeader("Authorization") String token) {
if (token.startsWith("Bearer ")) {
token = token.substring(7);
}
JWTDTO userWithTokenInfo = userService.getUserWithTokenInfo(uid, token);
return ResponseEntity.ok(userWithTokenInfo);
}

//닉네임 수정
@PutMapping("/nickname/{uid}")
public ResponseEntity<UserDTO> updateNickname(@PathVariable String uid, @RequestBody String nickname) {
Expand Down
6 changes: 6 additions & 0 deletions src/main/java/com/example/MangoWafflee/DTO/JWTDTO.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,11 @@
public class JWTDTO {
private String token;
private UserDTO user;
private Long tokenRemainingTime;

public JWTDTO(String token, UserDTO user) {
this.token = token;
this.user = user;
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -47,23 +47,12 @@ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
.csrf(csrf -> csrf.disable())
.authorizeHttpRequests(authorizeRequests ->
authorizeRequests
.requestMatchers("/", "/login**", "/oauth2/**", "/login", "/loginFailure", "/error").permitAll()
.requestMatchers("/user/kakao/**").authenticated() // 카카오 유저 정보 조회 경로 보호
.requestMatchers("/**").permitAll()
.anyRequest().authenticated()
)
.sessionManagement(sessionManagement ->
sessionManagement.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
)
.oauth2Login(oauth2Login ->
oauth2Login
.loginPage("/login")
.defaultSuccessUrl("/oauth2/loginSuccess")
.failureUrl("/loginFailure")
.userInfoEndpoint(userInfoEndpoint ->
userInfoEndpoint.userService(customOAuth2UserService())
)
)
.formLogin(formLogin -> formLogin.disable()); // 폼 로그인 비활성화
);

http.addFilterBefore(jwtAuthenticationFilter, UsernamePasswordAuthenticationFilter.class);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ public interface UserService {
void deleteUser(String uid, UserDetails userDetails);
Long refreshToken(UserDetails userDetails);
Long getTokenRemainingTime(UserDetails userDetails);
JWTDTO getUserWithTokenInfo(String uid, String token);
UserDTO updateNickname(String uid, String nickname);
JWTDTO loginWithOAuth2(OAuth2User oAuth2User);
UserDTO getKakaoUserInfo(String uid);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,16 @@ public Long refreshToken(UserDetails userDetails) {
return jwtTokenProvider.getTokenRemainingTime(token);
}

//유저 토큰 정보 조회
@Override
public JWTDTO getUserWithTokenInfo(String uid, String token) {
UserEntity userEntity = userRepository.findByUid(uid)
.orElseThrow(() -> new RuntimeException("유저의 uid가 " + uid + "인 사용자를 찾을 수 없습니다"));

Long remainingTime = jwtTokenProvider.getTokenRemainingTime(token);
return new JWTDTO(token, UserDTO.entityToDto(userEntity), remainingTime);
}

//닉네임 수정
@Override
public UserDTO updateNickname(String uid, String nickname) {
Expand Down

0 comments on commit 3c6845e

Please sign in to comment.