РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
154 of 307 menu

Статус HTTP_403_FORBIDDEN

Константа HTTP_403_FORBIDDEN применяется для указания кода ответа 403 Forbidden. Этот статус означает, что клиент аутентифицирован, но не имеет прав на доступ к ресурсу. В отличие от 401 Unauthorized, повторная аутентификация не поможет. Константа импортируется из модуля fastapi.status и передаётся в параметр status_code декоратора маршрута или в исключение HTTPException.

Синтаксис

from fastapi import status status.HTTP_403_FORBIDDEN

Пример

Давайте вернём статус 403 прямо из обработчика маршрута:

from fastapi import FastAPI, status app = FastAPI() @app.get('/admin/', status_code=status.HTTP_403_FORBIDDEN) def admin(): return {'detail': 'Access denied'}

Результат выполнения кода:

{"detail": "Access denied"}

Пример

Чаще статус 403 бросают через исключение HTTPException, когда у пользователя нет нужной роли:

from fastapi import FastAPI, HTTPException, status app = FastAPI() @app.get('/user/{name}') def user(name: str, role: str = 'guest'): if role != 'admin': raise HTTPException( status_code=status.HTTP_403_FORBIDDEN, detail='Not enough rights' ) return {'name': name, 'role': role}

Результат выполнения кода для адреса /user/abcde:

{"detail": "Not enough rights"}

Пример

Давайте вынесем проверку прав в отдельную зависимость и вернём статус 403 через неё:

from fastapi import FastAPI, Depends, HTTPException, status app = FastAPI() def check_admin(token: str = ''): if token != 'secret': raise HTTPException( status_code=status.HTTP_403_FORBIDDEN, detail='Forbidden' ) @app.get('/article/', dependencies=[Depends(check_admin)]) def article(): return {'text': 'hello'}

Результат выполнения кода для адреса /article/?token=secret:

{"text": "hello"}

Смотрите также

  • статус HTTP_401_UNAUTHORIZED,
    который требует аутентификации клиента
  • статус HTTP_404_NOT_FOUND,
    который сообщает об отсутствии ресурса
  • статус HTTP_200_OK,
    который возвращается при успешном запросе
  • модуль status,
    который содержит все константы HTTP-статусов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить