summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
authorDaniel Hader <[email protected]>2026-05-20 22:04:16 -0500
committerDaniel Hader <[email protected]>2026-05-20 22:04:16 -0500
commit92436c8bb9eafcc56219e784f8b374edfb1907a3 (patch)
tree45c9ebc50220414c20700e653cb17dd0c21ec00f /src/main.rs
parent74bc939843ae5c35fbd367c1ef0144b6074cfefe (diff)
basic login route with JWT
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs
index c1209bf..4daba48 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,3 +1,5 @@
+use std::{env, fs};
+
mod database;
mod routes;
mod auth;
@@ -7,6 +9,7 @@ use axum::{
Router,
};
+use jsonwebtoken::EncodingKey;
use routes::problem::{get_problems, create_problem};
use routes::user::create_user;
use tower_http::services::ServeDir;
@@ -15,16 +18,28 @@ use crate::database::Database;
#[derive(Clone)]
struct AppState {
+ api_key: EncodingKey,
database: Database,
}
#[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");
+ 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 database = Database::new_in_memory().unwrap();
database.initialize().unwrap();
let state = AppState {
+ api_key: api_key.to_owned(),
database: database,
};