TokenJSON expirationTime is typed to int32. The unmarshal code further cast int64 to int32 expirationTime should just be int64. This is an issue when some apps return really long expiration time to indicate permanent tokens, causing int overflow.