diff options
author | Jesse Luehrs <doy@tozt.net> | 2019-11-23 16:10:04 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2019-11-23 16:10:04 -0500 |
commit | b28008bc97a7fbc9d4e7b6eac2c06d8e91e1fb16 (patch) | |
tree | d4adb7e59dd66e6a1f4a68e37fc2b12debbcc4b9 /teleterm/src/web.rs | |
parent | aa346f8caf62c34ba6f45a4c99056a78b15d6651 (diff) | |
download | teleterm-b28008bc97a7fbc9d4e7b6eac2c06d8e91e1fb16.tar.gz teleterm-b28008bc97a7fbc9d4e7b6eac2c06d8e91e1fb16.zip |
start working on the login flow
Diffstat (limited to 'teleterm/src/web.rs')
-rw-r--r-- | teleterm/src/web.rs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/teleterm/src/web.rs b/teleterm/src/web.rs index 992b79d..07ece12 100644 --- a/teleterm/src/web.rs +++ b/teleterm/src/web.rs @@ -1,4 +1,6 @@ +mod disk_session; mod list; +mod login; mod view; mod watch; mod ws; @@ -15,6 +17,11 @@ struct Config { public_address: String, } +#[derive(Default, serde::Deserialize, serde::Serialize)] +struct SessionData { + username: Option<String>, +} + pub struct Server { server: Box<dyn futures::Future<Item = (), Error = ()> + Send>, } @@ -54,6 +61,14 @@ fn router(data: &Config) -> impl gotham::handler::NewHandler { .add(gotham::middleware::state::StateMiddleware::new( data.clone(), )) + .add( + gotham::middleware::session::NewSessionMiddleware::new( + disk_session::DiskSession, + ) + .insecure() + .with_cookie_name("teleterm") + .with_session_type::<SessionData>(), + ) .build(), ); gotham::router::builder::build_router(chain, pipeline, |route| { @@ -75,6 +90,10 @@ fn router(data: &Config) -> impl gotham::handler::NewHandler { .get("/watch") .with_query_string_extractor::<watch::QueryParams>() .to(watch::run); + route + .get("/login") + .with_query_string_extractor::<login::QueryParams>() + .to(login::run); }) } |