Merge pull request #2177 from famedly/krille/discover-auth-metadata

feat: (BREAKING) Discover OIDC auth metadata on Client.checkHomeserver()
This commit is contained in:
Krille-chan 2025-11-07 10:27:33 +01:00 committed by GitHub
commit dceaf6c3e3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 15 additions and 1 deletions

View File

@ -515,6 +515,7 @@ class Client extends MatrixApi {
DiscoveryInformation?,
GetVersionsResponse versions,
List<LoginFlow>,
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;