Redis를 사용하여 AccessToken BlackList 저장(로그아웃 기능)

로그아웃 기능을 구현하려면

저는 Redis에 AccesToken을 저장하는 방법을 사용했습니다.

키 값으로 토큰 입력


이후 기존 필터 단계에서 블랙리스트에 AccessToken이 저장되어 있는지 한번 더 확인하도록 하였다.

protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response,
    FilterChain filterChain) throws ServletException, IOException {
  try {
    String accessToken = jwtUtil.resolveAccessToken(request);
    if (accessToken != null) {
      Object blackList = redisDao.getBlackList(accessToken);
      if (blackList != null) {
        if (blackList.equals("logout")) {
          throw new IllegalArgumentException("로그아웃된 토큰입니다.");
        }

로그아웃 방법에서

RTR(Refresh Token Rotation)용 Redis에 저장된 새로 고침 토큰을 제거합니다.

블랙리스트에 저장된 AccessToken을 만들었습니다.

자랑스럽다~~~