feat: got sqlx working

This commit is contained in:
Andrew Rioux
2025-01-24 11:48:15 -05:00
parent 6e99dc3d70
commit 8695685eb3
19 changed files with 1071 additions and 49 deletions
-1
View File
@@ -1 +0,0 @@
+35
View File
@@ -0,0 +1,35 @@
use sqlx::{sqlite::SqlitePool, Database};
use pbkdf2::{pbkdf2_hmac_array, password_hash::{rand_core::OsRng, SaltString}};
use sha2::Sha256;
const PASSWORD_ITERATIONS: u32 = 100_000;
pub async fn reset_password<'a, E>(pool: E, id: i16, password: String) -> anyhow::Result<()>
where
E: sqlx::Executor<'a, Database = sqlx::Sqlite>
{
let salt = SaltString::generate(&mut OsRng);
let key = pbkdf2_hmac_array::<Sha256, 20>(
password.as_bytes(),
salt.as_str().as_bytes(),
PASSWORD_ITERATIONS
);
let salt_string = hex::encode(salt.as_str().as_bytes());
let password_string = hex::encode(&key[..]);
tracing::debug!("New password hash: {password_string}");
tracing::debug!("New password salt: {salt_string}");
sqlx::query!(
"UPDATE users SET password_hash = ?, password_salt = ? WHERE user_id = ?",
password_string,
salt_string,
id
)
.execute(pool)
.await?;
Ok(())
}
-1
View File
@@ -1 +0,0 @@