이슈
레디스의 경우는 <키:값> 으로 데이터를 저장하다 보니 운영서버와 개발서버에 같은 키를 가진 유저가 있으면, 리프레시토큰을 공유하게 됩니다.
따라서 아래와 같이 개발서버의 경우 키를 저장할때 userId 가 아닌 dev:userId 로 저장합니다. Redis-cli 를 이용하여 확인하면 아래와 같습니다.
// 바뀐방식으로 저장한 회원
127.0.0.1:6379> get "dev:2"
"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIyIiwiaWF0IjoxNjkzOTczMDkyfQ.7-98sYZpJ4NtIS_AZpgUlxVnRjRsiSvVXo_xtAhclaw"
127.0.0.1:6379> TTL "dev:2"
(integer) 604773
// 이전방식으로 저장한 회원
127.0.0.1:6379> get 1
"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxIiwiaWF0IjoxNjkzOTIzMDg0fQ.2LWRu6RjWpy12xY3R7Udu3qu4f7JZKbBik8hHLTqbhs"
127.0.0.1:6379> TTL 1
(integer) 554757
Java
복사
개발이 다 끝나고 운영서버로 배포할때
정규식을 이용하여 dev: 가 들어간 데이터는 다 삭제해주세요.
또한 tokenUtil.java 에서
String devKey = "dev:" + key;
return valueOperations.get(devKey);
Java
복사
devKey 부분을 전부 지워주시고, 변수도 key 로 바꾸어 주세요.