HTTP 401 Unauthorized
Autenticação necessária: o servidor não sabe quem você é, ou suas credenciais não funcionam mais.
O que significa o HTTP 401
HTTP 401 Unauthorized significa que a requisição foi rejeitada porque não tem credenciais de autenticação válidas. Apesar do nome, trata-se de autenticação (quem você é), não de autorização (o que você pode fazer) — esse segundo caso é o 403 Forbidden.
Um 401 compatível com a especificação inclui um cabeçalho WWW-Authenticate descrevendo como se autenticar, por exemplo Bearer para APIs baseadas em token ou Basic para autenticação HTTP clássica.
Causas comuns de erros 401
- Nenhuma credencial foi enviada (cabeçalho Authorization ou cookie de sessão ausente).
- Um token expirado, revogado ou malformado — a causa mais comum em APIs.
- Esquema de autenticação errado (enviando uma chave de API onde um token Bearer é esperado).
- Uma sessão desconectada: cookies expiraram ou foram limpos enquanto uma aba permanecia aberta.
- Desvio de relógio fazendo JWTs de curta duração parecerem expirados na chegada.
Como corrigir como usuário
- Faça login novamente — a sessão provavelmente expirou.
- Se entrar em loop, limpe os cookies do site e faça login novamente.
- Verifique se a URL não é uma área administrativa ou de staging que requer uma conta que você não tem.
Como corrigir como desenvolvedor
- Renove ou reemita tokens expirados; implemente renovação automática de token em clientes de API.
- Envie o cabeçalho Authorization exatamente no formato esperado ("Bearer <token>" — a palavra e o espaço importam).
- Retorne 401 apenas para credenciais ausentes/inválidas e 403 para usuários válidos sem direitos, para que os clientes possam reagir corretamente.
- Verifique a sincronização de horário do servidor (NTP) quando a validação "exp" do JWT falhar inesperadamente.
Exemplo de resposta
HTTP/1.1 401 Unauthorized WWW-Authenticate: Bearer realm="api", error="invalid_token", error_description="expired"
Perguntas frequentes
Qual é a diferença entre 401 e 403?
401 significa que o servidor não tem credenciais válidas para você — faça login ou renove o token. 403 significa que ele sabe quem você é e ainda assim recusa.
Por que recebo 401 com um token válido?
Causas comuns: token expirado, formato de cabeçalho errado, token emitido para um ambiente ou audiência diferente, ou desvio de relógio do servidor.
Um login falho deveria retornar 401?
Para APIs, sim, com um corpo explicativo. Formulários de login na web geralmente retornam 200 com uma mensagem de erro na página.