43 lines
972 B
Go
43 lines
972 B
Go
package types
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/golang-jwt/jwt/v5"
|
|
)
|
|
|
|
type Claims struct {
|
|
Uid string `json:"uid"`
|
|
Role string `json:"uro"`
|
|
Admin bool `json:"uab"`
|
|
Issuer string `json:"iss"`
|
|
IssuedAt int64 `json:"iat"`
|
|
ExpirationAt int64 `json:"exp"`
|
|
Audience []string `json:"aud,omitempty"`
|
|
}
|
|
|
|
func (c Claims) GetExpirationTime() (*jwt.NumericDate, error) {
|
|
d := jwt.NewNumericDate(time.Unix(c.ExpirationAt, 0))
|
|
return d, nil
|
|
}
|
|
|
|
func (c Claims) GetIssuedAt() (*jwt.NumericDate, error) {
|
|
return jwt.NewNumericDate(time.Unix(c.IssuedAt, 0)), nil
|
|
}
|
|
|
|
func (c Claims) GetNotBefore() (*jwt.NumericDate, error) {
|
|
return jwt.NewNumericDate(time.Unix(c.IssuedAt, 0)), nil
|
|
}
|
|
|
|
func (c Claims) GetIssuer() (string, error) {
|
|
return c.Issuer, nil
|
|
}
|
|
|
|
func (c Claims) GetSubject() (string, error) {
|
|
return c.Uid, nil
|
|
}
|
|
|
|
func (c Claims) GetAudience() (jwt.ClaimStrings, error) {
|
|
return jwt.ClaimStrings(c.Audience), nil
|
|
}
|