Saltar al contenido
ecdsa.com
golang-jwt/jwt (Go)Go

Mensaje de error

token is unverifiable: error while executing keyfunc: kid "2026-10" not found in key set

También se muestra como

  • token is unverifiable: error while executing keyfunc
  • token is unverifiable: no keyfunc was provided

El texto que sigue a «error while executing keyfunc:» es lo que devuelve tu Keyfunc. Llamar a `jwt.Parse` con una Keyfunc nil da «token is unverifiable: no keyfunc was provided».

golang-jwt/jwt (Go) — jwt.ErrTokenUnverifiable wrapping the error your Keyfunc returned

Qué significa

golang-jwt no puede obtener una clave para verificar el token: tu `Keyfunc` devuelve un error, y golang-jwt lo envuelve como `ErrTokenUnverifiable` («error while executing keyfunc: …»). Todo lo que sigue a ese prefijo es el mensaje de tu propia Keyfunc; en la reproducción, una búsqueda de clave por `kid` que no encontró nada. El token no se ha verificado ni rechazado por sus propios méritos.

Por qué ocurre

Cómo solucionarlo

  1. 1.

    Usar una Keyfunc de JWKS que se actualice sola

    Una Keyfunc respaldada por un JWKS actualiza las claves en segundo plano y cuando aparece un `kid` desconocido, así que las rotaciones no provocan caídas del servicio.

    go
    k, err := keyfunc.NewDefaultCtx(ctx, []string{"https://issuer.example.com/.well-known/jwks.json"})
    if err != nil {
    	log.Fatalf("load JWKS: %v", err)
    }
    // Refetches the JWKS in the background and on unknown kids (rate-limited).
    token, err := jwt.Parse(raw, k.Keyfunc, jwt.WithValidMethods([]string{"ES256"}))
  2. 2.

    Registrar la causa envuelta

    `errors.Is(err, jwt.ErrTokenUnverifiable)` identifica la clase; el error envuelto te dice si fue una clave no encontrada o un fallo de descarga.

    go
    if errors.Is(err, jwt.ErrTokenUnverifiable) {
    	// The wrapped error is whatever your Keyfunc returned: log it, answer 401.
    	log.Printf("cannot verify token: %v", errors.Unwrap(err))
    }

Errores relacionados

Explorar toda la base de datos de errores de firma