Встречается на собеседованиях • сегодня

Как реализуешь авторизацию на проекте

Для авторизации в Python-проектах чаще всего используют JWT (JSON Web Tokens) или сессии. Вот пример с JWT через FastAPI:

python
from fastapi import Depends, FastAPI, HTTPException
from fastapi.security import OAuth2PasswordBearer
from jose import JWTError, jwt
from passlib.context import CryptContext

SECRET_KEY = "secret"
ALGORITHM = "HS256"

pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")

def verify_password(plain_pwd, hashed_pwd):
return pwd_context.verify(plain_pwd, hashed_pwd)

def create_access_token(data: dict):
return jwt.encode(data, SECRET_KEY, algorithm=ALGORITHM)

async def get_current_user(token: str = Depends(oauth2_scheme)):
try:
payload = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM])
return payload
except JWTError:
raise HTTPException(status_code=401, detail="Invalid token")

text

Основные моменты:
1. Храним хеши паролей (не сами пароли!)
2. Используем HTTPS для защиты токенов
3. JWT содержит payload с user_id и сроком действия
4. Для production нужно:
   - Реализовать refresh токены
   - Хранить SECRET_KEY в env-переменных
   - Добавить обработку CSRF для веб-форм

Для больших проектов лучше использовать готовые решения типа Auth0 или Keycloak.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы