Claim에 Member ID를 넣고 JWT 토큰을 만든다.
그 이후에 JWT 토큰으로 Claim 중 Member ID를 가져온다.
그러면 Claim이 Double 타입이므로, Long 타입으로 받을 수 없다고 한다.
찾아보았는데 GSON 라이브러리의 버그라고 한다.
따라서, 그냥 명시적 형변환으로 해결했다.
https://github.com/jwtk/jjwt/issues/630
// BEFORE
public Long getUserId(String token) {
return parseClaims(token).get("memberId", Double.class);
}
// AFTER
public Long getUserId(String token) {
Double db = parseClaims(token).get("memberId", Double.class);
return db.longValue();
}