Zum Inhalt springen
ecdsa.com
jsonwebtoken (Node.js)JWT-Bibliotheken

Fehlermeldung

secret or public key must be provided

Auch ausgegeben als

  • secretOrPrivateKey must have a value

`jwt.sign()` meldet dasselbe Problem als „secretOrPrivateKey must have a value“ (ein einfacher `Error`).

jsonwebtoken (Node.js) — JsonWebTokenError from jwt.verify(); the sign() twin is a plain Error

Was der Fehler bedeutet

`jwt.verify()` hat ein signiertes Token erhalten, aber das Schlüsselargument ist leer (`undefined`, `null` oder `""`). Ohne Schlüssel kann jsonwebtoken keine Signatur prüfen, deshalb bricht es ab, bevor es sich das Token ansieht. Die signierende Seite hat ein Gegenstück, `secretOrPrivateKey must have a value`, das `jwt.sign()` aus demselben Grund wirft.

Warum der Fehler auftritt

So behebst du den Fehler

  1. 1.

    Konfiguration beim Start validieren

    Lies die benötigten Schlüssel einmal beim Start des Prozesses und beende ihn mit einer klaren Meldung, wenn einer fehlt. Eine falsch konfigurierte Instanz nimmt dann gar nicht erst Anfragen an.

    js
    function requireEnv(name) {
      const value = process.env[name];
      if (!value) throw new Error(name + " is not set");
      return value;
    }
    
    const JWT_PUBLIC_KEY = requireEnv("JWT_PUBLIC_KEY"); // evaluated once at startup
  2. 2.

    .env-Dateien vor allem anderen laden

    Importiere `dotenv/config` als allerersten Import oder nutze das eingebaute Flag `--env-file` von Node, damit jedes Modul die Werte sieht.

    js
    // Load .env before any module that reads process.env at import time.
    import "dotenv/config";
    import { app } from "./app.js";
    
    // Node 20.6+: no package needed
    // node --env-file=.env server.js

Verwandte Fehler

Gesamte Signaturfehler-Datenbank durchsuchen