aeus-admin/types/claims.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
}