리프레시 토큰

박미소·2024년 2월 4일
0

코틀린

목록 보기
42/44

로그인을 하면 리프레시 토큰이 저장되고(empty claims이다)

로그아웃을 하면 널값으로 바뀐다.


Member.kt

fun removeRefreshToken() {
      this.refreshToken = null
    }

MemberService.kt

@Transactional
fun logout() {
    val authenticatedEmail = authenticationUtil.getUserEmail()
    val member = memberRepository.findMemberByEmail(authenticatedEmail) ?: throw Exception("등록된 멤버가 아닙니다")

    member.removeRefreshToken()

//  memberRepository.save(member)      @Transactional 안쓰면 따로 jpa 한테 시켜서 저장해야되고 어노테이션 쓰면 더티체킹으로 리프레시 토큰에 널값이 업데이트 된다
    }



리프레시 토큰을 사용하면 왜 좋을까?


엑세스 토큰의 보안을 위해 엑세스 토큰의 시간을 짧게 지정하고 만료되기까지 더 긴 시간이 걸리는 리프레시 토큰으로 서비스 사용자가 잦은 로그아웃으로 불편하지 않게 하고 탈취로부터 안전하도록 엑세스 토큰을 자주 갱신할 수 있다.

0개의 댓글