Атрибут scheme_name
Атрибут scheme_name применяется к экземпляру класса
OAuth2PasswordBearer и хранит строку с названием
схемы безопасности. Это название отображается в интерактивной
документации Swagger UI в разделе авторизации, а также попадает
в генерируемую OpenAPI-схему в поле securitySchemes.
Если параметр не задан при создании объекта, FastAPI автоматически
подставляет имя 'OAuth2PasswordBearer'.
Атрибут доступен только для чтения и устанавливается один раз
при инициализации объекта OAuth2PasswordBearer.
Синтаксис
oauth2_scheme = OAuth2PasswordBearer(
tokenUrl='token',
scheme_name='MyScheme'
)
oauth2_scheme.scheme_name
Пример
Давайте создадим экземпляр OAuth2PasswordBearer
и выведем значение атрибута scheme_name:
from fastapi import FastAPI
from fastapi.security import OAuth2PasswordBearer
app = FastAPI()
oauth2_scheme = OAuth2PasswordBearer(
tokenUrl='token',
scheme_name='MyScheme'
)
@app.get('/')
def index():
return {'scheme_name': oauth2_scheme.scheme_name}
Результат выполнения кода:
{"scheme_name": "MyScheme"}
Пример
Если параметр scheme_name не передан, используется
значение по умолчанию:
from fastapi import FastAPI
from fastapi.security import OAuth2PasswordBearer
app = FastAPI()
oauth2_scheme = OAuth2PasswordBearer(tokenUrl='token')
@app.get('/')
def index():
return {'scheme_name': oauth2_scheme.scheme_name}
Результат выполнения кода:
{"scheme_name": "OAuth2PasswordBearer"}
Пример
Давайте используем scheme_name вместе с защищённым
маршрутом, чтобы имя схемы отображалось в Swagger UI:
from fastapi import FastAPI, Depends
from fastapi.security import OAuth2PasswordBearer
app = FastAPI()
oauth2_scheme = OAuth2PasswordBearer(
tokenUrl='token',
scheme_name='ArticleAuth'
)
@app.get('/items/')
def read_items(token: str = Depends(oauth2_scheme)):
return {'token': token}
После запуска приложения на странице /docs в разделе
авторизации будет отображаться название схемы
'ArticleAuth'.
Смотрите также
-
класс
OAuth2PasswordBearer,
который реализует OAuth2-авторизацию по паролю -
атрибут
tokenUrl,
который задаёт URL для получения токена -
атрибут
scopes,
который задаёт доступные области авторизации -
функция
Depends,
которая внедряет зависимость авторизации в маршрут