Aller au contenu
ecdsa.com
jsonwebtoken (Rust crate)Rust

Message d’erreur

Error(InvalidAlgorithm)

Également affiché sous la forme

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

`{:?}` affiche `Error(InvalidAlgorithm)`, `{}` affiche `InvalidAlgorithm`.

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

Ce que cela signifie

L’`alg` du jeton ne figure pas dans `validation.algorithms`, ou ne correspond pas à la famille de la `DecodingKey` (une clé EC ne peut pas vérifier du RS256). Ce contrôle a lieu avant toute vérification de signature. Le déclencheur le plus fréquent est `Validation::default()`, qui n’autorise que HS256.

Pourquoi cela se produit

Comment corriger l’erreur

  1. 1.

    Construire la Validation pour l’algorithme de l’émetteur

    Utilisez `Validation::new` avec l’algorithme de l’émetteur et définissez en même temps l’émetteur et l’audience attendus : les valeurs par défaut ne les vérifient pas.

    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)?;

Erreurs associées

Parcourir toute la base de données des erreurs de signature