Files
status/modules/jwt/claims.go

39 lines
626 B
Go

package jwt
import (
"os"
"slices"
"strings"
"github.com/golang-jwt/jwt/v5"
)
type Claims struct {
*jwt.RegisteredClaims
UserID uint64 `json:"userId"`
}
func NewClaims() *Claims {
c := &Claims{
RegisteredClaims: &jwt.RegisteredClaims{},
}
var (
trustedHosts = os.Getenv("JWT_TRUSTED_HOSTS")
audienceList []string
)
c.Issuer = os.Getenv("APP_HOST")
audienceList = append(audienceList, strings.Split(trustedHosts, ",")...)
audienceList = append(audienceList, c.Issuer)
audienceList = slices.DeleteFunc(audienceList, func(s string) bool {
return s == ""
})
c.Audience = audienceList
return c
}