mirror of
https://codeberg.org/pfzetto/axum-oidc
synced 2025-12-07 21:59:20 +01:00
fix: #34 optional nonce in ID token refresh
Only verify nonce in token request response if one was given.
This commit is contained in:
parent
65cb175603
commit
bacab1c939
1 changed files with 7 additions and 2 deletions
|
|
@ -14,7 +14,7 @@ use tower_sessions::Session;
|
||||||
use openidconnect::{
|
use openidconnect::{
|
||||||
core::{CoreAuthenticationFlow, CoreErrorResponseType, CoreGenderClaim, CoreJsonWebKey},
|
core::{CoreAuthenticationFlow, CoreErrorResponseType, CoreGenderClaim, CoreJsonWebKey},
|
||||||
AccessToken, AccessTokenHash, AuthenticationContextClass, CsrfToken, IdTokenClaims,
|
AccessToken, AccessTokenHash, AuthenticationContextClass, CsrfToken, IdTokenClaims,
|
||||||
IdTokenVerifier, Nonce, OAuth2TokenResponse, PkceCodeChallenge, RefreshToken,
|
IdTokenVerifier, Nonce, NonceVerifier, OAuth2TokenResponse, PkceCodeChallenge, RefreshToken,
|
||||||
RequestTokenError::ServerResponse,
|
RequestTokenError::ServerResponse,
|
||||||
Scope, TokenResponse,
|
Scope, TokenResponse,
|
||||||
};
|
};
|
||||||
|
|
@ -367,7 +367,12 @@ async fn try_refresh_token<AC: AdditionalClaims>(
|
||||||
.id_token()
|
.id_token()
|
||||||
.ok_or(MiddlewareError::IdTokenMissing)?;
|
.ok_or(MiddlewareError::IdTokenMissing)?;
|
||||||
let id_token_verifier = client.client.id_token_verifier();
|
let id_token_verifier = client.client.id_token_verifier();
|
||||||
let claims = id_token.claims(&id_token_verifier, nonce)?;
|
let claims = id_token.claims(&id_token_verifier, |claims_nonce: Option<&Nonce>| {
|
||||||
|
match claims_nonce {
|
||||||
|
Some(_) => nonce.verify(claims_nonce),
|
||||||
|
None => Ok(()),
|
||||||
|
}
|
||||||
|
})?;
|
||||||
|
|
||||||
validate_access_token_hash(
|
validate_access_token_hash(
|
||||||
id_token,
|
id_token,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue