본문 바로가기
기록

Date() 는 걷어내도록 해야겠다

by v.v 2024. 1. 24.

토큰을 생성할 때 jwt 라이브러리는 만료기간을 date 타입으로 받는 것을 기대한다
당연하게 만료기간을 date() 타입으로 지정한 상황..
 
테스트 , 스테이징, 운영 서버 모두 테스트 완료하여 운영배포한 상황에서 몃몃고객이 계속 자동 로그인이 풀린다는 문제제기를 받았다
데이터를 전수조사 해서 확인해보니 10명 이하의 유저 토큰만료기간이 130분으로 지정된 것을 확인
뜬금없이 왠 130분? 90일이 130분으로 바뀌는 마법!
 
단말기를 추가 요청해서 모델별 테스트를 해보고 에뮬도 돌려보고 지지고 볶고 해 본 결과
iOS는 문제없음 / 안드로이드는 노트10과 노트20에서 해당 이슈 발생 확인....
그것도 운영 & 스테이징 서버에서만 생긴 이슈
 
왜 모든 기기에서 발생하지 않고 특정 모델에서만 해당 이슈가 발생하는지는 오리모중이다
(os는 동일한데 왜 다르게 동작하냐구 )


기간에 관련된 이슈이다 보니 DATE() 타입이 문제가 아닐까 생각하여 검색해 보니 
JDK8 이상에서 DATE() 타입을 사용하지 않는 걸 권고한다고 한다.

여러가지 이유가 있지만 생략
 
long now = System.currentTimeMillis();
으로 만료기간 생성하여 new Date로 형변환 하여 코드를 변경했더니 해결됐다.
 
왜 안드로이드는 기기마다 다르게 동작하는가!!!!!

정말 답답하다

리빙포인트 : AOS는 안심하지 말고 가능한 모든 모델로 테스트하자
 
 
 
 

댓글