← Назад к вопросам
Какой код у ошибки авторизации?
2.0 Middle🔥 301 комментариев
#REST API и HTTP#Безопасность
Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
HTTP Status Code для ошибки авторизации
Ошибка авторизации в HTTP протоколе обозначается кодом 401 Unauthorized. Это наиболее корректный код для использования, когда запрос не содержит необходимых учётных данных или они неверны.
Различие между 401 и 403
Важно понимать разницу между 401 и 403:
- 401 Unauthorized — клиент не предоставил валидные учётные данные для авторизации. Если добавить правильный токен или пароль, запрос пройдёт. Браузер обычно показывает диалог аутентификации.
- 403 Forbidden — клиент авторизован, но ему недостаточно прав для доступа к ресурсу. Исправить ситуацию может только администратор.
Примеры использования в коде
Вот как обрабатываются эти ошибки в FastAPI и других фреймворках:
from fastapi import FastAPI, HTTPException, status
from fastapi.security import HTTPBearer, HTTPAuthCredentials
app = FastAPI()
security = HTTPBearer()
@app.get("/protected")
async def protected_route(credentials: HTTPAuthCredentials = security):
if not is_valid_token(credentials.credentials):
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail="Invalid authentication credentials",
headers={"WWW-Authenticate": "Bearer"},
)
return {"message": "Access granted"}
@app.get("/admin")
async def admin_route(current_user = Depends(get_current_user)):
if not current_user.is_admin:
raise HTTPException(
status_code=status.HTTP_403_FORBIDDEN,
detail="Not enough permissions"
)
return {"message": "Admin panel"}
Стандартные HTTP коды ошибок
Краткий справочник наиболее часто используемых кодов:
- 400 Bad Request — неверный формат запроса
- 401 Unauthorized — ошибка авторизации (нет или неверные учётные данные)
- 403 Forbidden — ошибка аутентификации (недостаточно прав)
- 404 Not Found — ресурс не найден
- 500 Internal Server Error — ошибка на сервере
Best Practices
- Всегда возвращай 401 при проблемах с авторизацией (отсутствующий токен, истёкший токен, неверные credentials)
- Возвращай 403 только после успешной аутентификации, если пользователю недостаточно прав
- Предоставляй контекст в заголовках и теле ответа для помощи клиенту
- Логируй попытки несанкционированного доступа в security логи
Таким образом, ответ на вопрос: 401 Unauthorized — это стандартный HTTP код для ошибки авторизации.