From 86555bd1f89154394f4e997786896e710dd2ba1b Mon Sep 17 00:00:00 2001 From: Daniel Hader Date: Fri, 22 May 2026 16:57:58 -0500 Subject: JWT encoding and minor cosmetic changes --- src/main.rs | 12 ++++++------ src/routes/auth.rs | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/main.rs b/src/main.rs index 4daba48..511a8f2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -12,6 +12,7 @@ use axum::{ use jsonwebtoken::EncodingKey; use routes::problem::{get_problems, create_problem}; use routes::user::create_user; +use routes::auth::login; use tower_http::services::ServeDir; use crate::database::Database; @@ -25,15 +26,13 @@ struct AppState { #[tokio::main] async fn main() { - let Ok(api_key_string) = fs::read_to_string("api-key.pem") else { - eprintln!("failed to read api-key.pem"); + let Ok(secret) = env::var("JWT_SECRET") else { + eprintln!("missing environment variable JWT_SECRET"); return; }; - let Ok(api_key) = EncodingKey::from_ec_pem(api_key_string.as_bytes()) else { - eprintln!("failed to decode key from api-key.pem"); - return; - }; + let api_key = EncodingKey::from_secret(secret.as_ref()); + let database = Database::new_in_memory().unwrap(); database.initialize().unwrap(); @@ -49,6 +48,7 @@ async fn main() { .route("/problem", get(get_problems)) .route("/problem", post(create_problem)) .route("/user", post(create_user)) + .route("/login", post(login)) .nest_service("/static", static_files) .with_state(state); diff --git a/src/routes/auth.rs b/src/routes/auth.rs index 0b17ef4..64ada2b 100644 --- a/src/routes/auth.rs +++ b/src/routes/auth.rs @@ -58,7 +58,7 @@ pub async fn login( }; let token= encode(&Header::default(), &claims, &state.api_key) - .map_err(|_| RouteError::Internal("failed to encode jwt".into()))?; + .map_err(|e| RouteError::Internal(format!("failed to encode jwt: {e}")))?; Ok(Json(LoginResponse { token })) } -- cgit v1.2.3