immich/mobile/lib/widgets
Mattia Bertorello 5ba3446fdf
fix(oauth): send and verify a nonce to tolerate IdP-injected nonces
Immich's OAuth flow never sent a `nonce`, so oauth4webapi's default
`expectNoNonce` rejected any id_token carrying one. Providers that inject a
nonce on federated logins (e.g. AWS Cognito relaying Google) therefore broke
with OAUTH_JWT_CLAIM_COMPARISON_FAILED: unexpected ID Token "nonce" claim.

Generate a real nonce in authorize(), round-trip it (web via httpOnly cookie,
mobile via the callback DTO since the client generates its own state/PKCE),
and pass it as expectedNonce to authorizationCodeGrant so the value is
verified per the OIDC spec.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-08-14 08:12:04 +02:00
..
activities chore: migrate mobile translations accessor (5) (#30672) 2026-08-11 14:41:13 +05:30
album chore(mobile): Apply stricter linting rules for formatting (#30370) 2026-07-30 08:56:46 +00:00
asset_grid chore: migrate mobile translations accessor (2) (#30668) 2026-08-11 14:41:12 +05:30
asset_viewer chore: migrate mobile translations accessor (2) (#30668) 2026-08-11 14:41:12 +05:30
backup chore: migrate mobile translations accessor (3) (#30670) 2026-08-11 14:41:12 +05:30
common refactor: unify person model (#30659) 2026-08-12 21:12:11 +05:30
forms fix(oauth): send and verify a nonce to tolerate IdP-injected nonces 2026-08-14 08:12:04 +02:00
map chore: migrate mobile translations accessor (3) (#30670) 2026-08-11 14:41:12 +05:30
memories chore: migrate mobile translations accessor (2) (#30668) 2026-08-11 14:41:12 +05:30
photo_view chore(mobile): Apply stricter linting rules for correctness (#30372) 2026-07-30 19:39:24 +00:00
search chore: remove old people provider (#30662) 2026-08-12 21:12:12 +05:30
settings chore: migrate mobile translations accessor (3) (#30670) 2026-08-11 14:41:12 +05:30
shared_link chore: migrate mobile translations accessor (5) (#30672) 2026-08-11 14:41:13 +05:30