From 374c8c537951c3a9f1933a37f708ca8b3521e1f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Ku=C3=9Fowski?= Date: Tue, 4 Nov 2025 13:19:36 +0100 Subject: [PATCH] feat: (BREAKING) Discover OIDC auth metadata on Client.checkHomeserver() --- lib/src/client.dart | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/src/client.dart b/lib/src/client.dart index 20f81c95..c84c2264 100644 --- a/lib/src/client.dart +++ b/lib/src/client.dart @@ -515,6 +515,7 @@ class Client extends MatrixApi { DiscoveryInformation?, GetVersionsResponse versions, List, + GetAuthMetadataResponse? authMetadata, )> checkHomeserver( Uri homeserverUrl, { bool checkWellKnown = true, @@ -554,7 +555,20 @@ class Client extends MatrixApi { ); } - return (wellKnown, versions, loginTypes); + GetAuthMetadataResponse? authMetadata; + if (versions.versions.any( + (v) => isVersionGreaterThanOrEqualTo(v, 'v1.16'), + )) { + try { + authMetadata = await getAuthMetadata(); + } on MatrixException catch (e, s) { + if (e.error != MatrixError.M_UNRECOGNIZED) { + Logs().w('Unable to discover OIDC auth metadata.', e, s); + } + } + } + + return (wellKnown, versions, loginTypes, authMetadata); } catch (_) { homeserver = null; rethrow;