From fbbcb4e1828495c0ca193da66101a869c49de246 Mon Sep 17 00:00:00 2001 From: Philippe Loctaux
Date: Mon, 1 May 2023 11:58:29 +0200
Subject: [PATCH] totp: added page to verify totp token
---
crates/ezidam/src/page.rs | 5 +
crates/ezidam/src/routes/oauth.rs | 12 ++
crates/ezidam/src/routes/oauth/totp.rs | 143 ++++++++++++++++++
.../templates/pages/oauth/totp.html.tera | 74 +++++++++
4 files changed, 234 insertions(+)
create mode 100644 crates/ezidam/src/routes/oauth/totp.rs
create mode 100644 crates/ezidam/templates/pages/oauth/totp.html.tera
diff --git a/crates/ezidam/src/page.rs b/crates/ezidam/src/page.rs
index 0551d24..1fec61b 100644
--- a/crates/ezidam/src/page.rs
+++ b/crates/ezidam/src/page.rs
@@ -28,6 +28,7 @@ pub enum Page {
ForgotPassword,
ResetPassword(ResetPassword),
UserSecurityTotp(UserSecurityTotp),
+ AuthorizeTotp(AuthorizeTotp),
}
impl Page {
@@ -52,6 +53,7 @@ impl Page {
Page::ForgotPassword => "pages/forgot-password",
Page::ResetPassword(_) => "pages/reset-password",
Page::UserSecurityTotp(_) => "pages/settings/totp",
+ Page::AuthorizeTotp(_) => "pages/oauth/totp",
}
}
@@ -76,6 +78,7 @@ impl Page {
Page::ForgotPassword => "Forgot password",
Page::ResetPassword(_) => "Reset password",
Page::UserSecurityTotp(_) => "Enable One-time password",
+ Page::AuthorizeTotp(_) => "Verifying your account",
}
}
@@ -102,6 +105,7 @@ impl Page {
Page::ForgotPassword => None,
Page::ResetPassword(_) => None,
Page::UserSecurityTotp(_) => Some(UserMenu::Settings.into()),
+ Page::AuthorizeTotp(_) => None,
}
}
@@ -126,6 +130,7 @@ impl Page {
Page::ForgotPassword => Box::new(()),
Page::ResetPassword(reset) => Box::new(reset),
Page::UserSecurityTotp(totp) => Box::new(totp),
+ Page::AuthorizeTotp(totp) => Box::new(totp),
}
}
}
diff --git a/crates/ezidam/src/routes/oauth.rs b/crates/ezidam/src/routes/oauth.rs
index b6a2622..2553d15 100644
--- a/crates/ezidam/src/routes/oauth.rs
+++ b/crates/ezidam/src/routes/oauth.rs
@@ -1,3 +1,4 @@
+use self::totp::*;
use authorize::*;
use redirect::*;
use rocket::{routes, Route};
@@ -7,6 +8,7 @@ use userinfo::*;
pub mod authorize;
pub mod redirect;
pub mod token;
+pub mod totp;
pub mod userinfo;
pub fn routes() -> Vec