package types import ( "time" "github.com/golang-jwt/jwt/v5" ) type Claims struct { Uid string `json:"uid"` Role string `json:"uro"` 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 }