의미
요청에 유효한 인증 정보가 없습니다. 이름은 Unauthorized지만 실제 의미는 "인증되지 않음"으로, 로그인하거나 유효한 토큰을 보내야 합니다.
흔한 원인
- Authorization 헤더 누락
- 만료되었거나 폐기된 토큰
- 잘못된 사용자 이름, 비밀번호, API 키
해결 방법
클라이언트 또는 방문자라면
WWW-Authenticate 헤더가 요구하는 형식으로 자격 증명을 보내고, 만료된 토큰을 갱신하며, 오타나 다른 환경의 키가 아닌지 확인하세요.
사이트나 API 운영자라면
401에는 항상 WWW-Authenticate 헤더를 포함하세요. 인증은 되었지만 권한이 없으면 403을 쓰세요.
응답 예시
HTTP/1.1
HTTP/1.1 401 Unauthorized
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx
WWW-Authenticate: Bearer realm="api", error="invalid_token"
Content-Type: application/problem+json
{
"type": "about:blank",
"title": "Unauthorized",
"status": 401,
"detail": "The access token expired."
} 명세
자주 묻는 질문
› 401과 403의 차이는?
401: 누구인지 모르니 인증하세요. 403: 누구인지는 알지만 이 작업은 허용되지 않습니다.
› 로그인 직후 401이 나는 이유는?
대개 토큰이 요청에 붙지 않았거나(자격 증명 없는 CORS, 잘못된 헤더 이름) 시계 차이로 만료된 것처럼 보이기 때문입니다.