package entity import "time" type Token struct { ID string `json:"id"` UID string `json:"uid"` DeviceID string `json:"device_id"` AccessToken string `json:"access_token"` ExpiresIn int `json:"expires_in"` AccessCreateAt time.Time `json:"access_create_at"` RefreshToken string `json:"refresh_token"` RefreshExpiresIn int `json:"refresh_expires_in"` RefreshCreateAt time.Time `json:"refresh_create_at"` } func (t *Token) AccessTokenExpires() time.Duration { return time.Duration(t.ExpiresIn) * time.Second } func (t *Token) RefreshTokenExpires() time.Duration { return time.Duration(t.RefreshExpiresIn) * time.Second } func (t *Token) RefreshTokenExpiresUnix() int64 { return time.Now().Add(t.RefreshTokenExpires()).Unix() } func (t *Token) IsExpires() bool { return t.AccessCreateAt.Add(t.AccessTokenExpires()).Before(time.Now()) } type UIDToken map[string]int64 type Ticket struct { Data interface{} `json:"data"` Token Token `json:"token"` }