Встречается на собеседованиях • сегодня
Как реализуешь авторизацию на проекте
Для авторизации в 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.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы