Aidar Turkenov 6 days ago committed by GitHub
commit bcaf7683a5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -173,9 +173,55 @@ class HomeserverPickerController extends State<HomeserverPicker> {
}
}
_checkSSOSuccess() async {
final href = html.window.location.href;
final uri = Uri.parse(href);
String? token;
// Try to get the token from query parameters
token = uri.queryParameters['loginToken'];
// If not found, try to get it from fragment
if (token == null && uri.fragment.isNotEmpty) {
final fragmentUri = Uri.parse('?' + uri.fragment.split('?').last);
token = fragmentUri.queryParameters['loginToken'];
}
final homeserver = Uri.parse(AppConfig.defaultHomeserver);
if (token != null) {
final client = await Matrix.of(context).getLoginClient();
setState(() {
error = null;
isLoading = true;
client.homeserver = homeserver;
});
try {
await client.login(
LoginType.mLoginToken,
token: token,
initialDeviceDisplayName: PlatformInfos.clientName,
);
} catch (e) {
setState(() {
error = e.toLocalizedString(context);
});
} finally {
if (mounted) {
setState(() {
error = null;
isLoading = false;
});
}
}
}
}
@override
void initState() {
_checkTorBrowser();
_checkSSOSuccess();
super.initState();
}

Loading…
Cancel
Save