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

Атрибут client_id

Атрибут client_id применяется к экземпляру класса OAuth2PasswordRequestForm. Он содержит строку с публичным идентификатором клиента, который передаётся в теле POST-запроса на эндпоинт получения токена. Этот атрибут используется в потоках OAuth2, где клиентское приложение должно представиться серверу авторизации. Значение по умолчанию - пустая строка.

Синтаксис

form.client_id

Пример

Давайте создадим эндпоинт для получения токена, который принимает форму с полями username, password и client_id:

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

Результат выполнения кода при отправке формы с полями username=user, password=secret и client_id=abcde:

{"username": "user", "client_id": "abcde"}

Пример

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

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

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

{"client_id": "", "is_empty": true}

Пример

Давайте используем атрибут client_id для условной выдачи токена только известным клиентам:

from fastapi import FastAPI, Depends, HTTPException from fastapi.security import OAuth2PasswordRequestForm app = FastAPI() ALLOWED_CLIENTS = ['abcde', 'article', 'user'] @app.post('/token') def login(form: OAuth2PasswordRequestForm = Depends()): if form.client_id not in ALLOWED_CLIENTS: raise HTTPException( status_code=400, detail='Unknown client' ) return {'access_token': 'token_for_' + form.client_id}

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

{"access_token": "token_for_abcde"}

Результат выполнения кода при передаче client_id=unknown:

{"detail": "Unknown client"}

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

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