https://github.com/nestjs/cache-manager

Redis를 사용하여 Refresh Token을 저장할 것이다.

redis는 key:value 형태로 데이터가 저장되어 있기 때문에

key=userId, value= Refresh Token 으로 할 것이다.

key를 userId와 같은 유저를 특정할 수 있는 unique한 value를 key값으로 쓰게 되면 한유저에 대한 Refresh Token이 여러개 발급되는 것을 막을 수 있다.

auth.service의 constructor 파일에

@Inject(CACHE_MANAGER) 데코레이터를 사용하여 cacheManager를 주입받을 수 있다.

이를 통해 NestJS의 의존성 주입 시스템이 CACHE_MANAGER 식별자와 매핑된 캐시 관리자를 주입한다.

Untitled

CACHE-MANAGER 코드

CACHE-MANAGER 코드

RTR 구현

refresh token을 일회용으로 구현하는것은 상당히 쉽다.

redis는 key가 중복되면 덮어쓴다고 한다.

그렇기 때문에 다른 처리 필요 없이 refresh token이 생성될 때마다 redis에 저장(set) 하면 RTR기법이 된다.

Untitled

refresh token 만료시간 저장