最終定位到這個問題是因爲java8 LocalDateTime序列化爲字符串導致的,以前是序列化爲毫秒數
新的token
{
"expireTime":"2019-03-08T21:58:38.798",
"token":"4a7f8559be107489d4e97cd02f9daef2",
"updateTime":"2019-03-08T20:58:38.798",
"userId":"da5f0e42e3a3ccb8575a44537fd9526e"
}
老的token
{
"expireTime":1552053732736,
"token":"5a4af07719da3e680b9817bdcd0a3c5f",
"updateTime":1552050132736,
"userId":"da5f0e42e3a3ccb8575a44537fd9526e"
}
然後爲什麼老的是序列化爲數字呢?
沒有找到fastjson直接把LocalDateTime變爲Long的方法
所以只能再加一個VO了
data class TokenVO(
val userId: String,
val token: String,
val expireTime: Long,
val updateTime: Long
) {
companion object {
fun fromToken(token: Token) : TokenVO {
val expireTime = token.expireTime.toMs()
val updateTime = token.updateTime.toMs()
return TokenVO(
userId = token.userId,
token = token.token,
expireTime = expireTime,
updateTime = updateTime
)
}
}
}
fun LocalDateTime.toMs(): Long {
return this.toInstant(ZoneOffset.of("+8")).toEpochMilli()
}