Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
이 주의 과제
로그인을 진행할 때 AccessToken과 Refresh Token을 함께 반환하는 로직
Redis를 활용해 Refresh Token으로 Access Token을 재발급 받는 로직을 구현
액세스 토큰이 만료되고 리프레시 토큰을 사용하여 새로운 액세스 토큰을 발급하는 경우, 보안성을 높이기 위해 리프레스 토큰 또한 재발급 되도록 구현하였습니다. 리프레시 토큰이 주기적으로 갱신되면, 만약 리프레시 토큰이 탈취되더라도 공격자가 사용할 수 있는 시간 범위를 줄일 수 있기 때문입니다.
요구사항 분석
Refresh Token 발급
: 사용자 인증 정보를 기반으로 RefreshToken을 발급합니다.
만료 시간(14일)을 갖게 설정
Yangdaehan/week06/practice/src/main/java/org/sopt/practice/auth/redis/domain/Token.java
Lines 13 to 33 in 6e89d2c
클라이언트에 Access Token, Refresh Token 을 저장하고 반환
: 아래 코드는 회원을 생성하고, 회원에 대한 액세스 토큰과 리프레시 토큰을 발급한 다음 Redis에 리프레시 토큰을 저장하는 작업을 수행합니다.
Yangdaehan/week06/practice/src/main/java/org/sopt/practice/service/MemberService.java
Lines 30 to 48 in 6ee4775
클라이언트가 API 호출 시, 유저의 refresh token을 검증하여 access 토큰 재발급(reissue)
: 주어진 리프레시 토큰을 사용하여 검사하고 해당 userId에 새로운 액세스 토큰, 리프레시 토큰을 발급하는 작업을 수행합니다.
(controller)
Yangdaehan/week06/practice/src/main/java/org/sopt/practice/controller/MemberController.java
Lines 54 to 64 in 6ee4775
(service)
Yangdaehan/week06/practice/src/main/java/org/sopt/practice/service/MemberService.java
Lines 68 to 83 in 6ee4775
실행 결과
질문있어요!
어려워요 Redis .. 여러 도움으로 구현할 수 있었습니다.