yavsc/src/PostIt
Paul Schneider 7a0944d0f5 PostIt.Desktop: wire the loopback browser, parameterise PostIt RedirectUris
The previous commit set Platform.CreateBrowser to null on the desktop
side, so LoginAsync would still fail with 'No browser is available'.
Close that loop with an explicit desktop bootstrap.

PostIt.Desktop/PlatformBootstrap.cs mirrors the Android side: it
populates Platform.DefaultRedirectUri and Platform.CreateBrowser
once at startup. Program.Main calls EnsureInitialized before
BuildAvaloniaApp so the LoginPageViewModel sees a working browser
before any login attempt.

The Yavsc.Org seed now reads Site:ExternalUrl from configuration so
the RedirectUri list for the PostIt client follows the same setting
as the rest of the application (same value used in
Administration/ClientController, AccountController, etc.). Without
this, an embedded 'launch PostIt from a Yavsc.Org page' scenario
would be rejected by IdentityServer (redirect_uri mismatch).

BuildPostItRedirectUris is a small helper that yields the constant
PostItRedirectUris (loopback + Android custom scheme) followed by
Site:ExternalUrl when set. Both SeedNewPostItClient (fresh db) and
MigratePostItClientToPublic (existing db) consume it. The legacy
cleanup block (which used to remove https://yavsc.pschneider.fr/
and yavsc://callback) is dropped: Site:ExternalUrl is now the
canonical way to authorise that path and may legitimately equal
that value.
2026-06-20 17:49:53 +01:00
..
PostIt PostIt.Android: drive the PKCE flow through Chrome Custom Tabs 2026-06-20 17:26:13 +01:00
PostIt.Android PostIt.Android: drive the PKCE flow through Chrome Custom Tabs 2026-06-20 17:26:13 +01:00
PostIt.Browser modernization + PostIt 2026-05-29 01:29:36 +01:00
PostIt.Desktop PostIt.Desktop: wire the loopback browser, parameterise PostIt RedirectUris 2026-06-20 17:49:53 +01:00
Directory.Packages.props PostIt.Android: drive the PKCE flow through Chrome Custom Tabs 2026-06-20 17:26:13 +01:00