diff --git a/backend/src/api.rs b/backend/src/api.rs index d0e5cf3..ded2015 100644 --- a/backend/src/api.rs +++ b/backend/src/api.rs @@ -25,6 +25,11 @@ pub fn get_members(tok: paseto::Token, conn: MainDatabase) -> Result Json { + Json(tok) +} + #[derive(serde::Serialize)] pub struct FrontChange { pub id: String, diff --git a/backend/src/main.rs b/backend/src/main.rs index 66af15d..964e83a 100644 --- a/backend/src/main.rs +++ b/backend/src/main.rs @@ -54,7 +54,8 @@ fn main() -> Result<()> { api::get_switches, api::get_switch, api::get_current_front, - api::make_switch + api::make_switch, + api::token_info ], ) .launch(); diff --git a/backend/src/paseto.rs b/backend/src/paseto.rs index ac611ee..4977d45 100644 --- a/backend/src/paseto.rs +++ b/backend/src/paseto.rs @@ -31,19 +31,18 @@ pub fn ed25519_keypair() -> AdHoc { .unwrap(); debug!("token: {}", token); - Ok(rocket - .manage(Ed25519KeyPair::from_seed_and_public_key(&private, &public).unwrap()) - .manage(PasetoPublicKey::ED25519KeyPair( - Ed25519KeyPair::from_seed_and_public_key(&private, &public).unwrap(), - ))) + Ok(rocket.manage(PasetoPublicKey::ED25519KeyPair( + Ed25519KeyPair::from_seed_and_public_key(&private, &public).unwrap(), + ))) }) } -#[derive(Debug, Deserialize)] +#[derive(Debug, Deserialize, Serialize)] pub struct Token { pub jti: String, pub sub: String, pub aud: String, + pub iss: String, } impl<'a, 'r> FromRequest<'a, 'r> for Token { @@ -59,6 +58,7 @@ impl<'a, 'r> FromRequest<'a, 'r> for Token { match validate_public_token(tok, None, &paseto_key) { Ok(val) => { let tok: Token = serde_json::from_value(val).unwrap(); + info!(id = &tok.jti[..], "token used"); Outcome::Success(tok) } Err(why) => {