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 식별자와 매핑된 캐시 관리자를 주입한다.
CACHE-MANAGER 코드
refresh token을 일회용으로 구현하는것은 상당히 쉽다.
redis는 key가 중복되면 덮어쓴다고 한다.
그렇기 때문에 다른 처리 필요 없이 refresh token이 생성될 때마다 redis에 저장(set) 하면 RTR기법이 된다.