Zum Inhalt springen
ecdsa.com
jsonwebtoken (Rust crate)Rust

Fehlermeldung

Error(InvalidAlgorithm)

Auch ausgegeben als

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

`{:?}` gibt `Error(InvalidAlgorithm)` aus, `{}` gibt `InvalidAlgorithm` aus.

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

Was der Fehler bedeutet

Der Wert `alg` des Tokens steht nicht in `validation.algorithms`, oder er passt nicht zur Familie des `DecodingKey` (ein EC-Schlüssel kann kein RS256 prüfen). Diese Prüfung findet vor jeder Signaturprüfung statt. Der häufigste Auslöser ist `Validation::default()`, das nur HS256 erlaubt.

Warum der Fehler auftritt

So behebst du den Fehler

  1. 1.

    Validation für den Algorithmus des Ausstellers erstellen

    Verwende `Validation::new` mit dem Algorithmus des Ausstellers und setze gleich auch den erwarteten Aussteller und die erwartete Audience – die Standardwerte prüfen sie nicht.

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

Verwandte Fehler

Gesamte Signaturfehler-Datenbank durchsuchen