feat: Implement matrix native oidc

This commit is contained in:
Christian Kußowski 2025-11-09 11:17:55 +01:00
commit c1541bc4bf
No known key found for this signature in database
GPG key ID: E067ECD60F1A0652
6 changed files with 208 additions and 92 deletions

View file

@ -3,7 +3,6 @@ import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:matrix/matrix.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:url_launcher/url_launcher_string.dart';
import 'package:fluffychat/config/app_config.dart';
import 'package:fluffychat/l10n/l10n.dart';
@ -119,13 +118,9 @@ class SettingsView extends StatelessWidget {
},
),
FutureBuilder(
future: Matrix.of(context).client.getWellknown(),
future: Matrix.of(context).client.getAuthMetadata(),
builder: (context, snapshot) {
final accountManageUrl = snapshot.data?.additionalProperties
.tryGetMap<String, Object?>(
'org.matrix.msc2965.authentication',
)
?.tryGet<String>('account');
final accountManageUrl = snapshot.data?.issuer;
if (accountManageUrl == null) {
return const SizedBox.shrink();
}
@ -133,7 +128,7 @@ class SettingsView extends StatelessWidget {
leading: const Icon(Icons.account_circle_outlined),
title: Text(L10n.of(context).manageAccount),
trailing: const Icon(Icons.open_in_new_outlined),
onTap: () => launchUrlString(
onTap: () => launchUrl(
accountManageUrl,
mode: LaunchMode.inAppBrowserView,
),