5
0
mirror of https://github.com/cwinfo/matterbridge.git synced 2024-11-24 20:11:36 +00:00
matterbridge/vendor/github.com/mattermost/mattermost-server/v5/model/token.go

43 lines
881 B
Go
Raw Normal View History

2020-08-09 22:29:54 +00:00
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
2017-08-16 21:37:37 +00:00
package model
import (
"net/http"
)
2017-08-16 21:37:37 +00:00
const (
TOKEN_SIZE = 64
2020-08-09 22:29:54 +00:00
MAX_TOKEN_EXIPRY_TIME = 1000 * 60 * 60 * 48 // 48 hour
2017-08-16 21:37:37 +00:00
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
}