mirror of
https://github.com/cwinfo/matterbridge.git
synced 2024-12-28 04:25:39 +00:00
41 lines
876 B
Go
41 lines
876 B
Go
|
// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
|
||
|
// See License.txt for license information.
|
||
|
|
||
|
package model
|
||
|
|
||
|
import "net/http"
|
||
|
|
||
|
const (
|
||
|
TOKEN_SIZE = 64
|
||
|
MAX_TOKEN_EXIPRY_TIME = 1000 * 60 * 60 * 24 // 24 hour
|
||
|
TOKEN_TYPE_OAUTH = "oauth"
|
||
|
)
|
||
|
|
||
|
type Token struct {
|
||
|
Token string
|
||
|
CreateAt int64
|
||
|
Type string
|
||
|
Extra string
|
||
|
}
|
||
|
|
||
|
func NewToken(tokentype, extra string) *Token {
|
||
|
return &Token{
|
||
|
Token: NewRandomString(TOKEN_SIZE),
|
||
|
CreateAt: GetMillis(),
|
||
|
Type: tokentype,
|
||
|
Extra: extra,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func (t *Token) IsValid() *AppError {
|
||
|
if len(t.Token) != TOKEN_SIZE {
|
||
|
return NewAppError("Token.IsValid", "model.token.is_valid.size", nil, "", http.StatusInternalServerError)
|
||
|
}
|
||
|
|
||
|
if t.CreateAt == 0 {
|
||
|
return NewAppError("Token.IsValid", "model.token.is_valid.expiry", nil, "", http.StatusInternalServerError)
|
||
|
}
|
||
|
|
||
|
return nil
|
||
|
}
|