github.com/masterhung0112/hk_server/v5@v5.0.0-20220302090640-ec71aef15e1c/model/token.go (about) 1 package model 2 3 import ( 4 "net/http" 5 ) 6 7 const ( 8 TOKEN_SIZE = 64 9 MAX_TOKEN_EXPIRY_TIME = 1000 * 60 * 60 * 48 // 48 hour 10 TOKEN_TYPE_OAUTH = "oauth" 11 ) 12 13 type Token struct { 14 Token string 15 CreateAt int64 16 Type string 17 Extra string 18 } 19 20 func NewToken(tokentype, extra string) *Token { 21 return &Token{ 22 Token: NewRandomString(TOKEN_SIZE), 23 CreateAt: GetMillis(), 24 Type: tokentype, 25 Extra: extra, 26 } 27 } 28 29 func (t *Token) IsValid() *AppError { 30 if len(t.Token) != TOKEN_SIZE { 31 return NewAppError("Token.IsValid", "model.token.is_valid.size", nil, "", http.StatusInternalServerError) 32 } 33 34 if t.CreateAt == 0 { 35 return NewAppError("Token.IsValid", "model.token.is_valid.expiry", nil, "", http.StatusInternalServerError) 36 } 37 38 return nil 39 }