immich/mobile/lib
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
..
constants chore(mobile): more complicated Freezed pass (#30452) 2026-08-10 14:12:45 -07:00
domain refactor: reactive driftGetAllPeopleProvider (#30660) 2026-08-12 21:12:12 +05:30
entities refactor: yeet old timeline (#27666) 2026-04-15 23:00:27 +05:30
extensions chore: migrate mobile translations accessor (5) (#30672) 2026-08-11 14:41:13 +05:30
infrastructure refactor: reactive driftGetAllPeopleProvider (#30660) 2026-08-12 21:12:12 +05:30
interfaces refactor(mobile): interfaces refactor (#19415) 2025-06-23 11:27:44 -05:00
mixins chore: flutter 3.29.1 (#16730) 2025-03-10 21:46:36 -05:00
models refactor: unify person model (#30659) 2026-08-12 21:12:11 +05:30
pages refactor: reactive driftGetAllPeopleProvider (#30660) 2026-08-12 21:12:12 +05:30
presentation fix(mobile): prevent iOS status bar scroll to top during transitions (#30717) 2026-08-12 12:57:45 -07:00
providers chore: remove old people provider (#30662) 2026-08-12 21:12:12 +05:30
repositories chore: remove old people provider (#30662) 2026-08-12 21:12:12 +05:30
routing fix(mobile): prevent iOS status bar scroll to top during transitions (#30717) 2026-08-12 12:57:45 -07:00
services fix(oauth): send and verify a nonce to tolerate IdP-injected nonces 2026-08-14 08:12:04 +02:00
theme chore(mobile): Apply stricter linting rules for formatting (#30370) 2026-07-30 08:56:46 +00:00
utils feat: workflow logging (#29878) 2026-08-13 19:18:24 -07:00
widgets fix(oauth): send and verify a nonce to tolerate IdP-injected nonces 2026-08-14 08:12:04 +02:00
main.dart fix(mobile): prevent iOS status bar scroll to top during transitions (#30717) 2026-08-12 12:57:45 -07:00
wm_executor.dart chore(mobile): Apply stricter linting rules for correctness (#30372) 2026-07-30 19:39:24 +00:00