diff --git a/config_sample.toml b/config_sample.toml index 0deced5..3b04122 100644 --- a/config_sample.toml +++ b/config_sample.toml @@ -1,3 +1,6 @@ +[session] +key = '------------- Secure session key, 64 character length -------------' + [network] bind_ip = '127.0.0.1' port = 3000 diff --git a/src/config.rs b/src/config.rs index 33d6e5a..f55b782 100644 --- a/src/config.rs +++ b/src/config.rs @@ -14,6 +14,19 @@ pub struct Network { port: u16 } +#[cfg(feature = "ssr")] +#[derive(Deserialize)] +pub struct Session { + key: String +} + +#[cfg(feature = "ssr")] +impl Session { + pub fn key(&self) -> &[u8] { + self.key.as_bytes() + } +} + #[cfg(feature = "ssr")] impl Network { pub fn bind_address(&self) -> SocketAddr { @@ -41,12 +54,16 @@ impl Database { #[cfg(feature = "ssr")] #[derive(Deserialize)] pub struct Configuration { + session: Session, network: Network, database: Database } #[cfg(feature = "ssr")] impl Configuration { + pub fn session(&self) -> &Session { + &self.session + } pub fn network(&self) -> &Network { &self.network } diff --git a/src/main.rs b/src/main.rs index 7414bb6..b0ced0c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,4 @@ -use log::error; +use log::{debug, error}; use rezervator::backend::company::check_company; use rezervator::backend::user::create_admin; @@ -45,7 +45,7 @@ async fn main() -> std::io::Result<()> { let srv_conf = load_config(&cfg_path); // Generate the list of routes in your Leptos App let routes = generate_route_list(|| view! { }); - let key = Key::generate(); + let key = Key::from(srv_conf.session().key()); let pool = PgPoolOptions::new() .max_connections(10)