kofdai's picture
Upload folder using huggingface_hub
594ed40 verified
from sqlalchemy.orm import Session
from backend.app.database.models import User
from backend.app.schemas.auth import UserCreate
from backend.app.utils.password_hash import get_password_hash, verify_password
from backend.app.utils.jwt_utils import create_access_token
class AuthService:
def get_user_by_email(self, db: Session, email: str) -> User | None:
"""メールアドレスでユーザーを検索する"""
return db.query(User).filter(User.email == email).first()
def create_user(self, db: Session, user: UserCreate) -> User:
"""新規ユーザーを作成する"""
hashed_password = get_password_hash(user.password)
db_user = User(email=user.email, hashed_password=hashed_password)
db.add(db_user)
db.commit()
db.refresh(db_user)
return db_user
def authenticate_user(self, db: Session, email: str, password: str) -> User | None:
"""ユーザーを認証する"""
user = self.get_user_by_email(db, email=email)
if not user:
return None
if not verify_password(password, user.hashed_password):
return None
return user
# --- 依存性注入用の関数 ---
def get_auth_service() -> AuthService:
return AuthService()