add jwt debug

Signed-off-by: Pakin <pakin.t@forth.co.th>
This commit is contained in:
Pakin 2026-06-17 16:53:08 +07:00
parent 317fcd4203
commit 3821214de8

View file

@ -1,7 +1,7 @@
use std::sync::Arc; use std::sync::Arc;
use aes_gcm::{Aes256Gcm, aead::AeadMut}; use aes_gcm::{Aes256Gcm, aead::AeadMut};
use log::info; use log::{error, info, warn};
use p256::elliptic_curve::sec1::{FromEncodedPoint, ToEncodedPoint}; use p256::elliptic_curve::sec1::{FromEncodedPoint, ToEncodedPoint};
use rand::Rng; use rand::Rng;
use tokio::time::Instant; use tokio::time::Instant;
@ -75,11 +75,27 @@ pub(crate) async fn verify_token(
let keys = { state.jwk_encoding_keys.read().unwrap() }; let keys = { state.jwk_encoding_keys.read().unwrap() };
for key in keys.iter() { for key in keys.iter() {
if let Ok(token_data) = jsonwebtoken::decode::<FirebaseJwtClaims>(token, key, &validation) { match jsonwebtoken::decode::<FirebaseJwtClaims>(token, key, &validation) {
return Ok(token_data.claims.sub); Ok(token_data) => {
return Ok(token_data.claims.sub);
}
Err(e) => {
error!("failed to decode jwt: {e:?}");
}
} }
} }
if let Ok(td) = jsonwebtoken::dangerous::insecure_decode::<serde_json::Value>(token) {
let kid = td.header.kid;
error!(
"Invalid Firebase Token signature or metadata mismatch, kid: {:?}, from {:?} ({:?})",
kid.clone(),
td.claims.get("name"),
td.claims.get("email")
);
warn!("current token: {token}");
}
Err(Box::from( Err(Box::from(
"Invalid Firebase Token signature or metadata mismatch", "Invalid Firebase Token signature or metadata mismatch",
)) ))