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

Атрибут client_secret

Атрибут client_secret принадлежит классу OAuth2PasswordRequestForm и содержит секретную строку клиента, переданную в теле POST-запроса. Значение приходит из поля client_secret формы. Если поле не передано, атрибут принимает значение None. Атрибут применяется при аутентификации конфиденциальных клиентов, которым сервер выдал секрет вместе с идентификатором client_id. Доступ к атрибуту получают через объект формы, внедрённый в обработчик маршрута с помощью Depends.

Синтаксис

form.client_secret

Пример

Давайте объявим маршрут, который принимает форму и выводит значение секрета клиента:

from fastapi import FastAPI, Depends from fastapi.security import OAuth2PasswordRequestForm app = FastAPI() @app.post('/token') def login(form: OAuth2PasswordRequestForm = Depends()): return {'client_secret': form.client_secret}

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

{"client_secret": "abcde"}

Пример

Давайте проверим секрет клиента и вернём признак успешной проверки:

from fastapi import FastAPI, Depends, HTTPException from fastapi.security import OAuth2PasswordRequestForm app = FastAPI() @app.post('/token') def login(form: OAuth2PasswordRequestForm = Depends()): if form.client_secret != 'abcde': raise HTTPException(status_code=401, detail='invalid client') return {'client_id': form.client_id, 'grant_type': form.grant_type}

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

{"client_id": "user", "grant_type": "password"}

Пример

Давайте обработаем случай, когда секрет клиента не передан:

from fastapi import FastAPI, Depends from fastapi.security import OAuth2PasswordRequestForm app = FastAPI() @app.post('/token') def login(form: OAuth2PasswordRequestForm = Depends()): if form.client_secret is None: return {'client_secret': 'not provided'} return {'client_secret': form.client_secret}

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

{"client_secret": "not provided"}

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

  • класс OAuth2PasswordRequestForm,
    который описывает форму запроса токена
  • атрибут client_id,
    который хранит идентификатор клиента
  • атрибут grant_type,
    который хранит тип предоставления доступа
  • функция Depends,
    которая внедряет форму в обработчик маршрута
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить