From 9ed619e3fdb8ff329e5848390686eb31e2791492 Mon Sep 17 00:00:00 2001 From: MythEclipse Date: Sat, 16 Aug 2025 13:47:29 +0700 Subject: [PATCH] feat: Optimize password verification by using blocking tasks for improved performance --- imphnen-iam/src/v1/auth/auth_service.rs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/imphnen-iam/src/v1/auth/auth_service.rs b/imphnen-iam/src/v1/auth/auth_service.rs index 813e8e8..85a1fc5 100644 --- a/imphnen-iam/src/v1/auth/auth_service.rs +++ b/imphnen-iam/src/v1/auth/auth_service.rs @@ -78,8 +78,11 @@ impl AuthServiceTrait for AuthService { match user_repo.query_user_by_email(email.to_string()).await { Ok(user) => { - let is_password_correct = - verify_password(password, &user.password).unwrap_or(false); + let is_password_correct = tokio::task::spawn_blocking({ + let password = password.to_owned(); + let user_password = user.password.clone(); + move || verify_password(&password, &user_password).unwrap_or(false) + }).await.unwrap_or(false); if !is_password_correct { return common_response( @@ -173,8 +176,11 @@ impl AuthServiceTrait for AuthService { match user_repo.query_user_by_email(payload.email.clone()).await { Ok(user) => { - let is_password_correct = - verify_password(&payload.password, &user.password).unwrap_or(false); + let is_password_correct = tokio::task::spawn_blocking({ + let password = payload.password.clone(); + let user_password = user.password.clone(); + move || verify_password(&password, &user_password).unwrap_or(false) + }).await.unwrap_or(false); if !is_password_correct { return common_response(