Атрибут password
Класс HTTPBasicCredentials создаётся
зависимостью HTTPBasic и содержит данные,
переданные клиентом в заголовке Authorization.
Атрибут password хранит пароль в виде строки.
Он читается напрямую через точку и применяется
для сверки с паролем из базы данных.
Синтаксис
credentials.password
Пример
Давайте извлечём логин и пароль из зависимости
HTTPBasic и вернём их в ответе:
from fastapi import FastAPI, Depends
from fastapi.security import HTTPBasic, HTTPBasicCredentials
app = FastAPI()
security = HTTPBasic()
@app.get('/user')
def user(credentials: HTTPBasicCredentials = Depends(security)):
return {
'username': credentials.username,
'password': credentials.password
}
Результат выполнения кода при логине 'user'
и пароле 'abcde':
{"username": "user", "password": "abcde"}
Пример
Давайте сверим пароль из атрибута password
с паролем из базы и вернём приветствие:
from fastapi import FastAPI, Depends, HTTPException
from fastapi.security import HTTPBasic, HTTPBasicCredentials
app = FastAPI()
security = HTTPBasic()
users = {'user': 'abcde'}
@app.get('/login')
def login(credentials: HTTPBasicCredentials = Depends(security)):
if users.get(credentials.username) != credentials.password:
raise HTTPException(status_code=401, detail='Invalid credentials')
return {'text': 'hello'}
Результат выполнения кода при верных данных:
{"text": "hello"}
Смотрите также
-
класс
HTTPBasicCredentials,
который хранит данные Basic авторизации -
атрибут
username,
который хранит логин из Basic авторизации -
класс
HTTPBasic,
который создаёт зависимость для Basic авторизации -
класс
Depends,
который внедряет зависимость в обработчик