HTTP 401 Unauthorized
Authentifizierung erforderlich: Der Server weiß nicht, wer du bist, oder deine Zugangsdaten funktionieren nicht mehr.
Was HTTP 401 bedeutet
HTTP 401 Unauthorized bedeutet, dass der Request abgelehnt wurde, weil ihm gültige Authentifizierungsdaten fehlen. Trotz des Namens geht es um Authentifizierung (wer du bist), nicht um Autorisierung (was du tun darfst) — dieser zweite Fall ist 403 Forbidden.
Eine spezifikationskonforme 401 enthält einen WWW-Authenticate-Header, der beschreibt, wie authentifiziert werden soll, z. B. Bearer für Token-APIs oder Basic für klassische HTTP-Authentifizierung.
Häufige Ursachen von 401-Fehlern
- Es wurden überhaupt keine Zugangsdaten gesendet (fehlender Authorization-Header oder Session-Cookie).
- Ein abgelaufenes, widerrufenes oder fehlerhaftes Token — die häufigste API-Ursache.
- Falsches Authentifizierungsschema (Senden eines API-Keys, wo ein Bearer-Token erwartet wird).
- Eine abgemeldete Session: Cookies liefen ab oder wurden gelöscht, während ein Tab offen blieb.
- Zeitabweichung, durch die kurzlebige JWTs bei Ankunft bereits abgelaufen erscheinen.
So behebst du es als Nutzer
- Melde dich erneut an — die Session ist höchstwahrscheinlich abgelaufen.
- Falls es in einer Schleife läuft, lösche die Cookies der Seite und melde dich neu an.
- Prüfe, ob die URL nicht ein Admin- oder Staging-Bereich ist, der ein Konto erfordert, das du nicht hast.
So behebst du es als Entwickler
- Erneuere oder stelle abgelaufene Tokens neu aus; implementiere automatische Token-Erneuerung in API-Clients.
- Sende den Authorization-Header genau im erwarteten Formatieren („Bearer <token>“ — das Wort und das Leerzeichen sind wichtig).
- Gib 401 nur bei fehlenden/ungültigen Zugangsdaten zurück und 403 für gültige Nutzer ohne Rechte, damit Clients korrekt reagieren können.
- Prüfe die Zeitsynchronisation des Servers (NTP), wenn die JWT-„exp“-Validierung unerwartet fehlschlägt.
Beispielantwort
HTTP/1.1 401 Unauthorized WWW-Authenticate: Bearer realm="api", error="invalid_token", error_description="expired"
FAQ
Was ist der Unterschied zwischen 401 und 403?
401 bedeutet, dass der Server keine gültigen Zugangsdaten für dich hat — melde dich an oder erneuere das Token. 403 bedeutet, dass er weiß, wer du bist, und trotzdem ablehnt.
Warum bekomme ich 401 mit einem gültigen Token?
Häufige Ursachen: abgelaufenes Token, falsches Header-Formatieren, ein Token, das für eine andere Umgebung oder Zielgruppe ausgestellt wurde, oder eine Zeitabweichung des Servers.
Sollte ein fehlgeschlagener Login 401 zurückgeben?
Bei APIs ja, mit einem erklärenden Body. Web-Login-Formulare geben meist stattdessen 200 mit einer Fehlermeldung auf der Seite zurück.