Ответ
Ошибка авторизации обычно возвращает 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: Пользователь аутентифицирован, но не авторизован для данного действия (у вас нет разрешения на это?).
Ответ 18+ 🔞
Да ты посмотри на эту дичь, блядь! Ошибка авторизации — это ж классика, ёпта! Сервер такой: «А ты кто, сука, такой?» И шлёт тебе статус 401 Unauthorized. То есть, грубо говоря, твои креды — хуйня полная, либо их вообще нет, как у младенца в бане.
Вот тебе пример на Flask, смотри:
from flask import Flask, jsonify, abort
app = Flask(__name__)
@app.route('/protected')
def protected():
# Имитация проверки авторизации
# Если пользователь не аутентифицирован, возвращаем 401
abort(401, description="Требуется аутентификация")
if __name__ == '__main__':
app.run()
А теперь, внимание, ебать мои старые костыли, есть ещё 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: «А, это ты, Васян... Нет, Васян, тебе сюда низя. Иди отсюда, пока не выебали».