22 lines
681 B
Go
22 lines
681 B
Go
package models
|
|
|
|
import (
|
|
"time"
|
|
|
|
"gorm.io/gen"
|
|
)
|
|
|
|
type AccessToken struct {
|
|
User User
|
|
UserId string
|
|
Token string `gorm:"primarykey;type:uuid;default:gen_random_uuid()"`
|
|
Name string // Token name will be empty if autogenerated with sucessful login
|
|
// Every token expires, even if set to "not expire". If set to "not expire", it just expires
|
|
// at a point in the future this server should never reach
|
|
ExpiresAt time.Time `gorm:"default:TIMESTAMP WITH TIME ZONE '9999-12-30 23:59:59+00'"`
|
|
}
|
|
|
|
type IAccessToken interface {
|
|
// INSERT INTO @@table (user_id, token, name, {{if expiresAt != nil}}, )
|
|
NewToken(user *User, name string, expiresAt *time.Time) (gen.T, error)
|
|
}
|