微信h5循環登錄的一個bug記錄

最終定位到這個問題是因爲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()
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章