···5757 }
58585959 var jwks jwk.Key
6060- if metadata.JWKS != nil {
6060+ if metadata.JWKS != nil && len(metadata.JWKS.Keys) > 0 {
6161 // TODO: this is kinda bad but whatever for now. there could obviously be more than one jwk, and we need to
6262 // make sure we use the right one
6363- k, err := helpers.ParseJWKFromBytes((*metadata.JWKS)[0])
6363+ b, err := json.Marshal(metadata.JWKS.Keys[0])
6464 if err != nil {
6565 return nil, err
6666 }
6767+6868+ k, err := helpers.ParseJWKFromBytes(b)
6969+ if err != nil {
7070+ return nil, err
7171+ }
7272+6773 jwks = k
6874 } else if metadata.JWKSURI != nil {
6975 maybeJwks, err := cm.getClientJwks(ctx, clientId, *metadata.JWKSURI)
···7278 }
73797480 jwks = maybeJwks
8181+ } else {
8282+ return nil, fmt.Errorf("no valid jwks found in oauth client metadata")
7583 }
76847785 return &Client{