The endpoint is working
This commit is contained in:
@@ -236,10 +236,12 @@ pub async fn service_user_login(
|
||||
}),
|
||||
)
|
||||
} else {
|
||||
println!("Good to create");
|
||||
let service_user =
|
||||
match repo::service::get_with_username(&pool, &payload.username).await {
|
||||
Ok(service_user) => service_user,
|
||||
Err(_err) => {
|
||||
Err(err) => {
|
||||
eprintln!("Error: {err:?}");
|
||||
return (
|
||||
axum::http::StatusCode::INTERNAL_SERVER_ERROR,
|
||||
axum::Json(response::LoginResponse {
|
||||
@@ -249,12 +251,16 @@ pub async fn service_user_login(
|
||||
);
|
||||
}
|
||||
};
|
||||
println!("Service user: {service_user:?}");
|
||||
println!("Payload: {:?}", payload.passphrase);
|
||||
let hashed_password = service_user.passphrase.clone();
|
||||
println!("Hash password: {hashed_password:?}");
|
||||
|
||||
match hashing::verify_password(&payload.passphrase, hashed_password) {
|
||||
Ok(matches) => {
|
||||
if matches {
|
||||
// Create token
|
||||
println!("Creating token");
|
||||
let key = textsender_models::envy::environment::get_secret_key()
|
||||
.await
|
||||
.value;
|
||||
@@ -288,6 +294,7 @@ pub async fn service_user_login(
|
||||
}),
|
||||
)
|
||||
} else {
|
||||
eprintln!("Invalid token");
|
||||
(
|
||||
axum::http::StatusCode::INTERNAL_SERVER_ERROR,
|
||||
axum::Json(response::LoginResponse {
|
||||
@@ -297,6 +304,7 @@ pub async fn service_user_login(
|
||||
)
|
||||
}
|
||||
} else {
|
||||
eprintln!("No match");
|
||||
(
|
||||
axum::http::StatusCode::INTERNAL_SERVER_ERROR,
|
||||
axum::Json(response::LoginResponse {
|
||||
|
||||
@@ -252,7 +252,7 @@ pub async fn register_service_user(
|
||||
salt.id = repo::salt::insert(&pool, &salt).await.unwrap();
|
||||
let mut service_user = textsender_models::user::ServiceUser {
|
||||
username: payload.username.clone(),
|
||||
passphrase: hashing::hash_password(&payload.username, &generate_salt)
|
||||
passphrase: hashing::hash_password(&payload.passphrase, &generate_salt)
|
||||
.unwrap(),
|
||||
salt_id: salt.id,
|
||||
..Default::default()
|
||||
|
||||
+14
-3
@@ -54,17 +54,28 @@ pub async fn get_with_username(
|
||||
username: &String,
|
||||
) -> Result<textsender_models::user::ServiceUser, sqlx::Error> {
|
||||
match sqlx::query(
|
||||
r#"SELECT id, username, passphrase, created, last_login FROM "service_user" WHERE username = $1"#
|
||||
r#"SELECT id, username, passphrase, created, last_login, salt_id FROM "service_user" WHERE username = $1"#
|
||||
).bind(username)
|
||||
.fetch_one(pool).await {
|
||||
Ok(row) => {
|
||||
let last_login: Option<time::OffsetDateTime> = match row.try_get("last_login") {
|
||||
Ok(login) => {
|
||||
Some(login)
|
||||
}
|
||||
Err(err) => {
|
||||
eprintln!("Error: {err:?}");
|
||||
None
|
||||
}
|
||||
};
|
||||
|
||||
let service_user = textsender_models::user::ServiceUser {
|
||||
id: row.try_get("id")?,
|
||||
username: row.try_get("username")?,
|
||||
passphrase: row.try_get("passphrase")?,
|
||||
created: row.try_get("created")?,
|
||||
last_login: row.try_get("last_login")?,
|
||||
salt_id: row.try_get("salt_id")?
|
||||
// last_login:
|
||||
salt_id: row.try_get("salt_id")?,
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
Ok(service_user)
|
||||
|
||||
Reference in New Issue
Block a user