From 29a9c9b0a9e3bd8546e1be62ae053966c668574e Mon Sep 17 00:00:00 2001 From: Henri Bourcereau Date: Sun, 24 May 2026 20:49:17 +0200 Subject: [PATCH] fix(relay-server): send email verification at login --- server/relay-server/src/http.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/server/relay-server/src/http.rs b/server/relay-server/src/http.rs index 9c6071f..c8701fc 100644 --- a/server/relay-server/src/http.rs +++ b/server/relay-server/src/http.rs @@ -245,6 +245,7 @@ async fn register( async fn login( mut auth_session: AuthSession, + State(state): State>, Json(body): Json, ) -> Result { let creds = Credentials { @@ -260,6 +261,18 @@ async fn login( auth_session.login(&user).await.map_err(|_| AppError::Internal)?; + if !user.email_verified { + let _ = db::delete_email_tokens(&state.db, user.id, "verify").await; + let token = generate_token(); + let expires_at = now_unix() + VERIFY_TOKEN_EXPIRY; + if db::create_email_token(&state.db, user.id, &token, "verify", expires_at) + .await + .is_ok() + { + state.mailer.send_verification(&user.email, &token).await; + } + } + Ok(Json(MeResponse { id: user.id, username: user.username,