diff --git a/src/api/core/two_factor/email.rs b/src/api/core/two_factor/email.rs index d6470a28..26cc5945 100644 --- a/src/api/core/two_factor/email.rs +++ b/src/api/core/two_factor/email.rs @@ -197,14 +197,20 @@ async fn email(data: Json, headers: Headers, mut conn: DbConn) -> Jso } /// Validate the email code when used as TwoFactor token mechanism -pub async fn validate_email_code_str(user_id: &UserId, token: &str, data: &str, conn: &mut DbConn) -> EmptyResult { +pub async fn validate_email_code_str( + user_id: &UserId, + token: &str, + data: &str, + ip: &std::net::IpAddr, + conn: &mut DbConn, +) -> EmptyResult { let mut email_data = EmailTokenData::from_json(data)?; let mut twofactor = TwoFactor::find_by_user_and_type(user_id, TwoFactorType::Email as i32, conn) .await .map_res("Two factor not found")?; let Some(issued_token) = &email_data.last_token else { err!( - "No token available", + format!("No token available! IP: {}", ip), ErrorEvent { event: EventType::UserFailedLogIn2fa } @@ -220,7 +226,7 @@ pub async fn validate_email_code_str(user_id: &UserId, token: &str, data: &str, twofactor.save(conn).await?; err!( - "Token is invalid", + format!("Token is invalid! IP: {}", ip), ErrorEvent { event: EventType::UserFailedLogIn2fa } diff --git a/src/api/identity.rs b/src/api/identity.rs index 39478c50..cdcfbbcc 100644 --- a/src/api/identity.rs +++ b/src/api/identity.rs @@ -575,7 +575,7 @@ async fn twofactor_auth( } } Some(TwoFactorType::Email) => { - email::validate_email_code_str(&user.uuid, twofactor_code, &selected_data?, conn).await? + email::validate_email_code_str(&user.uuid, twofactor_code, &selected_data?, &ip.ip, conn).await? } Some(TwoFactorType::Remember) => {