Compare commits
No commits in common. "a34ba04f782f6755cba34adbd44998bc15d8ff52" and "9ed5a41d32676d306820ca8809864d2764396e93" have entirely different histories.
a34ba04f78
...
9ed5a41d32
@ -95,25 +95,12 @@ async def reset_password(request: Request, key: str | None = None, email: str |
|
|||||||
|
|
||||||
@router.post("/password/update", tags=["password"])
|
@router.post("/password/update", tags=["password"])
|
||||||
async def update_password(request: Request, email: str = Form(...), key: str = Form(...), new_password: str = Form(...)): # Vérification du token dans Redis
|
async def update_password(request: Request, email: str = Form(...), key: str = Form(...), new_password: str = Form(...)): # Vérification du token dans Redis
|
||||||
# Récupérer la clé hachée depuis Redis
|
|
||||||
key_hashed = database.connect_redis.get(email)
|
key_hashed = database.connect_redis.get(email)
|
||||||
|
|
||||||
if key_hashed is None:
|
if key_hashed is None or key_hashed.decode() != key:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_400_BAD_REQUEST,
|
status_code=status.HTTP_400_BAD_REQUEST,
|
||||||
detail="Invalid or expired reset key"
|
detail="Key is invalid or expired"
|
||||||
)
|
|
||||||
|
|
||||||
# Redis stocke les valeurs en `bytes`, donc il faut décoder si nécessaire
|
|
||||||
if isinstance(key_hashed, bytes):
|
|
||||||
key_hashed = key_hashed.decode()
|
|
||||||
|
|
||||||
|
|
||||||
# Vérifier que la clé en clair correspond au hash stocké
|
|
||||||
if not bcrypt.checkpw(key.encode(), key_hashed.encode()):
|
|
||||||
raise HTTPException(
|
|
||||||
status_code=status.HTTP_400_BAD_REQUEST,
|
|
||||||
detail="Invalid reset key"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# Recherche de l'utilisateur dans la base de données
|
# Recherche de l'utilisateur dans la base de données
|
||||||
|
Loading…
x
Reference in New Issue
Block a user