package jwks import ( "errors" "framework_v2/internal/providers" "github.com/MicahParks/keyfunc/v3" "github.com/golang-jwt/jwt/v5" "go.uber.org/zap" "time" ) var refreshRate = 1 * time.Hour var Jwks keyfunc.Keyfunc var ( ErrJWKSNotInitialized = errors.New("JWKS is not initialized") ) var logger = providers.MustGet[zap.Logger]() var config = providers.MustGet[providers.GlobalConfig]() func RefreshJWKS() { logger.Info("Refreshing JWKS...") var err error Jwks, err = keyfunc.NewDefault([]string{config.JWKS.Url}) if err != nil { logger.Error("Failed to create JWK Set from resource at the given URL.\nError: " + err.Error()) } logger.Info("JWKS refreshed.") } func ParseJWT(jwtB64 string) (*jwt.Token, error) { //if Jwks.Keyfunc == nil { // Logger.Error(ErrJWKSNotInitialized.Error()) // return nil, ErrJWKSNotInitialized //} token, err := jwt.Parse(jwtB64, Jwks.Keyfunc) return token, err }