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

Python Senior Без компании
Как реализуешь авторизацию на проекте
Ответы
Для авторизации в Python-проектах чаще всего используют JWT (JSON Web Tokens) или сессии. Вот пример с JWT через FastAPI: ``` 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") ``` Основные моменты: - Храним хеши паролей (не сами пароли!) - Используем HTTPS для защиты токенов - JWT содержит payload с user_id и сроком действия - Для production нужно: - Реализовать refresh токены - Хранить SECRET_KEY в env-переменных - Добавить обработку CSRF для веб-форм Для больших проектов лучше использовать готовые решения типа Auth0 или Keycloak.