From 30f8d9ecf11ac350ef184ba4c652597176afe084 Mon Sep 17 00:00:00 2001 From: azdle Date: Tue, 22 Jul 2025 13:28:22 -0500 Subject: [PATCH] add signup page --- src/server/routes/auth/mod.rs | 17 +++++++++++++++-- templates/signup.html | 19 +++++++++++++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 templates/signup.html diff --git a/src/server/routes/auth/mod.rs b/src/server/routes/auth/mod.rs index 8fffe2c..e50ebab 100644 --- a/src/server/routes/auth/mod.rs +++ b/src/server/routes/auth/mod.rs @@ -8,7 +8,7 @@ use axum::{ extract::State, http::StatusCode, response::{IntoResponse, Redirect}, - routing::{get, post}, + routing::get, Form, Router, }; use password_hash::{rand_core::OsRng, PasswordHash, PasswordHasher, PasswordVerifier, SaltString}; @@ -23,11 +23,24 @@ use crate::server::{ pub fn build() -> Router { Router::new() - .route("/signup", post(signup)) + .route("/signup", get(signup_page).post(signup)) .route("/login", get(login_page).post(login)) .route("/logout", get(logout_page).post(logout)) } +#[derive(Template, WebTemplate, Default)] +#[template(path = "signup.html")] +struct SignupPage { + error: Option, +} + +#[tracing::instrument] +pub async fn signup_page() -> SignupPage { + info!("get signup page"); + + SignupPage::default() +} + #[derive(Deserialize)] pub struct SignupForm { email: String, diff --git a/templates/signup.html b/templates/signup.html new file mode 100644 index 0000000..6d998f1 --- /dev/null +++ b/templates/signup.html @@ -0,0 +1,19 @@ + + + Signup + {%if let Some(msg) = error %} +

{{msg}}

+ {% endif %} +
+ + + + +
+