
- Set up project structure with FastAPI - Configure SQLAlchemy with SQLite - Implement user and item models - Set up Alembic for database migrations - Create CRUD operations for models - Implement API endpoints for users and items - Add authentication functionality - Add health check endpoint - Configure Ruff for linting - Update README with comprehensive documentation
27 lines
613 B
Python
27 lines
613 B
Python
import secrets
|
|
|
|
from passlib.context import CryptContext
|
|
|
|
# Password hashing context
|
|
pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
|
|
|
|
|
|
def verify_password(plain_password: str, hashed_password: str) -> bool:
|
|
"""
|
|
Verify a plain password against a hashed password.
|
|
"""
|
|
return pwd_context.verify(plain_password, hashed_password)
|
|
|
|
|
|
def get_password_hash(password: str) -> str:
|
|
"""
|
|
Hash a password using bcrypt.
|
|
"""
|
|
return pwd_context.hash(password)
|
|
|
|
|
|
def generate_token() -> str:
|
|
"""
|
|
Generate a secure random token.
|
|
"""
|
|
return secrets.token_urlsafe(32) |