add jwt debug
Signed-off-by: Pakin <pakin.t@forth.co.th>
This commit is contained in:
parent
317fcd4203
commit
3821214de8
1 changed files with 19 additions and 3 deletions
|
|
@ -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",
|
||||||
))
|
))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue