HTTP 401 Unauthorized
Autenticazione richiesta: il server non sa chi sei, oppure le tue credenziali non funzionano più.
Cosa significa HTTP 401
HTTP 401 Unauthorized significa che la richiesta è stata rifiutata perché manca di credenziali di autenticazione valide. Nonostante il nome, riguarda l'autenticazione (chi sei), non l'autorizzazione (cosa puoi fare) — quel secondo caso è 403 Forbidden.
Un 401 conforme alla specifica include un header WWW-Authenticate che descrive come autenticarsi, ad esempio Bearer per le API a token o Basic per l'autenticazione HTTP classica.
Cause comuni degli errori 401
- Non è stata inviata alcuna credenziale (header Authorization o cookie di sessione mancanti).
- Un token scaduto, revocato o malformato — la causa API più comune.
- Schema di autenticazione errato (invio di una chiave API dove è previsto un token Bearer).
- Una sessione disconnessa: i cookie sono scaduti o sono stati cancellati mentre una scheda restava aperta.
- Disallineamento dell'orologio che fa apparire scaduti all'arrivo JWT di breve durata.
Come risolverlo da utente
- Accedi di nuovo — la sessione molto probabilmente è scaduta.
- Se si ripete in loop, cancella i cookie del sito e accedi di nuovo.
- Controlla che l'URL non sia un'area admin o di staging che richiede un account che non hai.
Come risolverlo da sviluppatore
- Aggiorna o riemetti i token scaduti; implementa il refresh automatico dei token nei client API.
- Invia l'header Authorization esattamente nel formato previsto (“Bearer <token>” — la parola e lo spazio contano).
- Restituisci 401 solo per credenziali mancanti/non valide e 403 per utenti validi privi di diritti, così i client possono reagire correttamente.
- Verifica la sincronizzazione dell'orario del server (NTP) quando la validazione “exp” del JWT fallisce inaspettatamente.
Esempio di risposta
HTTP/1.1 401 Unauthorized WWW-Authenticate: Bearer realm="api", error="invalid_token", error_description="expired"
FAQ
Qual è la differenza tra 401 e 403?
401 significa che il server non ha credenziali valide per te — accedi o aggiorna il token. 403 significa che sa chi sei e rifiuta comunque.
Perché ricevo 401 con un token valido?
Cause comuni: token scaduto, formato dell'header errato, token emesso per un ambiente o un pubblico diverso, oppure disallineamento dell'orologio del server.
Un login fallito dovrebbe restituire 401?
Per le API, sì, con un corpo esplicativo. I moduli di login web di solito restituiscono 200 con un messaggio di errore nella pagina.