From 8cb223e8624edae8ea2652e4f5aa7d810e7c1bce Mon Sep 17 00:00:00 2001 From: Henry-Hiles Date: Sun, 27 Jul 2025 15:29:43 -0400 Subject: [PATCH] Change naming --- bin/matrixoidc.dart | 1 - lib/helpers/api_helper.dart | 25 +++++++++++++++++-------- lib/helpers/name_helper.dart | 3 --- 3 files changed, 17 insertions(+), 12 deletions(-) delete mode 100644 lib/helpers/name_helper.dart diff --git a/bin/matrixoidc.dart b/bin/matrixoidc.dart index 28ba002..1484caf 100644 --- a/bin/matrixoidc.dart +++ b/bin/matrixoidc.dart @@ -36,7 +36,6 @@ void main(List argsRaw) async { ..get("/userinfo", apiHelper.userinfoHandler) ..get("/bridge", apiHelper.bridgeHandler) ..post("/login", apiHelper.loginHandler) - ..post("/introspect", apiHelper.introspectionHandler) ..post("/logout", apiHelper.logoutHandler) ..post("/token", apiHelper.tokenHandler)) .call, diff --git a/lib/helpers/api_helper.dart b/lib/helpers/api_helper.dart index e8652b4..67836bf 100644 --- a/lib/helpers/api_helper.dart +++ b/lib/helpers/api_helper.dart @@ -3,7 +3,6 @@ import "package:dart_jsonwebtoken/dart_jsonwebtoken.dart"; import "package:matrixoidc/controllers/auth_code_controller.dart"; import "package:matrixoidc/controllers/key_controller.dart"; import "package:matrixoidc/controllers/settings_controller.dart"; -import "package:matrixoidc/helpers/name_helper.dart"; import "package:shelf/shelf.dart"; import "package:http/http.dart" as http; import "package:matrixoidc/models/matrix_user.dart"; @@ -126,7 +125,6 @@ class ApiHelper { "exp": DateTime.now().add(Duration(days: 7)).millisecondsSinceEpoch ~/ 1000, - "name": user.userId.getName(), "nonce": user.nonce, "iat": DateTime.now().millisecondsSinceEpoch ~/ 1000, }, @@ -163,7 +161,21 @@ class ApiHelper { await ref.read(KeyController.provider.future), ); - final name = jwt.subject!.getName(); + final settings = ref.read(SettingsController.provider)!; + final profile = await http.get( + Uri.parse( + "${settings.homeserver}/_matrix/client/v3/profile/${jwt.subject}", + ), + ); + + if (profile.statusCode != 200) { + return Response.forbidden( + json.encode({"error": "Access token validation failed"}), + ); + } + + final name = json.decode(profile.body)["displayname"]; + return Response.ok( jsonEncode({ "sub": jwt.subject, @@ -185,13 +197,10 @@ class ApiHelper { } try { - final jwt = JWT.verify( - token, - await ref.read(KeyController.provider.future), - ); + JWT.verify(token, await ref.read(KeyController.provider.future)); return Response.ok( - json.encode({"active": true, "name": jwt.subject!.getName()}), + json.encode({"active": true}), headers: {"content-type": "application/json"}, ); } catch (_) { diff --git a/lib/helpers/name_helper.dart b/lib/helpers/name_helper.dart deleted file mode 100644 index 76c0460..0000000 --- a/lib/helpers/name_helper.dart +++ /dev/null @@ -1,3 +0,0 @@ -extension GetName on String { - String getName() => split(":").first.replaceFirst("@", ""); -}