-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[feat] 6차 세미나 과제 코드입니다. #8
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PR 잘 읽어보았습니다..! 중간 중간 주석처리가 잘 되어 있어서 코드를 읽고 이해하기 쉬웠던 것 같아요:) 에러 처리 관련한 부분에서 어떤 상황에서 예외가 발생하는지에 대한 주석처리가 있으면 훨씬 좋을 것 같다는 생각이 들었습니다!! ㅎㅎ
- 멤버 생성 API -> 이 부분은 회원가입에 대한 부분이라 로그인 시 아이디와 비밀번호가 일치하는지 확인하는 검증과정이 추가로 필요하기 떄문에 로그인 관련 API를 따로 구현을 해야한다는 생각을 하게 되었는데 구현하실 때 이부분에 대해 다른 생각이 있으셨는지가 궁금합니다!
과제하시느라 정말 고생 많으셨습니다!
@PostMapping("/refresh-token") | ||
public ResponseEntity<AccessTokenDto> refreshToken(){ | ||
Long userId = principalHandler.getUserIdFromPrincipal(); | ||
AccessTokenDto newAccessTokenResponse = redisTokenService.refreshToken(userId); | ||
return ResponseEntity.status(HttpStatus.CREATED) | ||
.body(newAccessTokenResponse); | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
위의 메서드에서 @RequestBody로 RefreshToken을 받도록 수정하면 좀 더 안전하게 토큰을 갱신할 수 있을 것 같다는 생각이 드네요..!!
@PostMapping("/refresh-token")
public ResponseEntity<AccessTokenDto> refreshToken(@RequestBody String refreshToken){
Long userId = principalHandler.getUserIdFromPrincipal();
AccessTokenDto newAccessTokenResponse = redisTokenService.refreshToken(userId, refreshToken);
return ResponseEntity.status(HttpStatus.CREATED).body(newAccessTokenResponse);
}
과제하느라 고생많으셨습니다! redis 서버 실행 여부 확인 방법 등도 pr에 같이 명시해주셔서 좋네용! 주석도 잘 이해돼서 좋았습니다~ |
과제하시느라 고생하셨습니다! 궁금한 점이 있는데 |
Related Issue 📌
Description ✔️
🍀 로그인 진행 시 AccessToken과 RefreshToken 함께 반환하는 로직Access Token은 만료시간이 짧은 토큰이기 때문에, 만료 시간을 짧게 수정해주고, 만료 시간이 긴 Refresh Token 필드를 생성해 준다.
Access Token 생성 로직이랑 동일하게 RefreshToken을 생성해준다.
멤버 생성 시 생성한 accessToken, refreshToken을 반환해준다. 또한, 해당 멤버에 해당하는 refreshToken을 Redis에 저장해준다.
(기타) Redis 설정 파일 구성해줘야 한다.
실행결과
🍀 Redis 활용해 Refresh Token으로 Access Token 재발급 받는 로직
TokenController 구현
RedisTokenService 구현
실행결과
🍀 Redis에 저장되어 있는 RefreshToken 확인해보기
redis 접속
KEY값(refreshToken) 으로 되어 있는 아이들 모두 확인
결과
To Reviewers