auth / core /security.py
novaaa1011's picture
Upload 15 files
ef8461f verified
Raw History Blame Contribute Delete
1.04 kB
from passlib.context import CryptContext
from jose import jwt
from datetime import datetime, timedelta
from core.config import settings
# Cấu hình băm mật khẩu (Hashing)
pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
def verify_password(plain_password, hashed_password):
"""Kiểm tra mật khẩu nhập vào có khớp với hash trong DB không"""
return pwd_context.verify(plain_password, hashed_password)
def get_password_hash(password):
"""Băm mật khẩu trước khi lưu vào DB"""
return pwd_context.hash(password)
def create_access_token(data: dict):
"""Tạo JWT Token (Thẻ bài)"""
to_encode = data.copy()
expire = datetime.utcnow() + timedelta(minutes=settings.ACCESS_TOKEN_EXPIRE_MINUTES)
# Payload chứa thông tin user và thời gian hết hạn
to_encode.update({"exp": expire})
# Ký tên đóng dấu bằng SECRET_KEY
encoded_jwt = jwt.encode(to_encode, settings.SECRET_KEY, algorithm=settings.ALGORITHM)
return encoded_jwt