fix: replace passlib with direct bcrypt for bcrypt 5.0 compatibility

This commit is contained in:
Agent Zero
2026-07-11 19:38:47 +02:00
parent a6375567b0
commit 5f67cc9140
+3 -4
View File
@@ -2,7 +2,7 @@
from datetime import datetime, timedelta, timezone from datetime import datetime, timedelta, timezone
from typing import Optional from typing import Optional
from jose import JWTError, jwt from jose import JWTError, jwt
from passlib.context import CryptContext import bcrypt
from fastapi import Depends, HTTPException, status, Request from fastapi import Depends, HTTPException, status, Request
from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy import select from sqlalchemy import select
@@ -12,17 +12,16 @@ from app.models.admin_user import AdminUser
settings = get_settings() settings = get_settings()
pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
def verify_password(plain_password: str, hashed_password: str) -> bool: def verify_password(plain_password: str, hashed_password: str) -> bool:
"""Verify a plain password against a hash.""" """Verify a plain password against a hash."""
return pwd_context.verify(plain_password, hashed_password) return bcrypt.checkpw(plain_password.encode(), hashed_password.encode())
def get_password_hash(password: str) -> str: def get_password_hash(password: str) -> str:
"""Hash a password using bcrypt.""" """Hash a password using bcrypt."""
return pwd_context.hash(password) return bcrypt.hashpw(password.encode(), bcrypt.gensalt()).decode()
def create_access_token(data: dict, expires_delta: timedelta | None = None) -> str: def create_access_token(data: dict, expires_delta: timedelta | None = None) -> str: