Ответ
Ошибка авторизации обычно возвращает HTTP статус-код 401 Unauthorized. Это означает, что запрос не был выполнен из-за отсутствия или недействительности учетных данных (аутентификации).
Пример обработки в Python (Flask):
from flask import Flask, jsonify, abort
app = Flask(__name__)
@app.route('/protected')
def protected():
# Имитация проверки авторизации
# Если пользователь не аутентифицирован, возвращаем 401
abort(401, description="Требуется аутентификация")
if __name__ == '__main__':
app.run()
В контексте REST API также часто используется 403 Forbidden. Этот код означает, что клиент аутентифицирован, но не имеет достаточных прав для доступа к запрошенному ресурсу (авторизация).
Пример ответа в FastAPI:
from fastapi import FastAPI, HTTPException
app = FastAPI()
@app.get("/admin")
async def admin_panel():
# Имитация проверки прав доступа
# Если пользователь аутентифицирован, но не имеет роли администратора
raise HTTPException(status_code=403, detail="Доступ запрещен: недостаточно прав")
Ключевое различие:
- 401 Unauthorized: Пользователь не аутентифицирован (кто вы?).
- 403 Forbidden: Пользователь аутентифицирован, но не авторизован для данного действия (у вас нет разрешения на это?).