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.