Saltar al contenido
ecdsa.com
jsonwebtoken (Rust crate)Rust

Mensaje de error

Error(InvalidAlgorithm)

También se muestra como

  • called `Result::unwrap()` on an `Err` value: Error(InvalidAlgorithm)
  • InvalidAlgorithm

`{:?}` imprime `Error(InvalidAlgorithm)` y `{}` imprime `InvalidAlgorithm`.

jsonwebtoken (Rust crate) — ErrorKind::InvalidAlgorithm from decode()

Qué significa

El `alg` del token no está en `validation.algorithms` o no corresponde a la familia de la `DecodingKey` (una clave EC no puede verificar RS256). La comprobación se hace antes de cualquier verificación de firma. La causa más habitual es `Validation::default()`, que solo permite HS256.

Por qué ocurre

Cómo solucionarlo

  1. 1.

    Crear la Validation para el algoritmo del emisor

    Usa `Validation::new` con el algoritmo del emisor y configura a la vez el emisor y la audiencia esperados: los valores predeterminados no los comprueban.

    rust
    let mut validation = Validation::new(Algorithm::ES256); // the issuer's algorithm
    validation.set_issuer(&["https://issuer.example.com/"]);
    validation.set_audience(&["api://orders"]);
    let data = decode::<Claims>(&token, &key, &validation)?;

Errores relacionados

Explorar toda la base de datos de errores de firma