summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main.rs12
-rw-r--r--src/routes/auth.rs2
2 files changed, 7 insertions, 7 deletions
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 }))
}