From d4fe91860acf96ee04a4e25e6ac65b4b99a18f57 Mon Sep 17 00:00:00 2001 From: Armand <4831c0@proton.me> Date: Sun, 12 Oct 2025 13:57:20 +0200 Subject: [PATCH] cast jwt payload to Map --- firka/lib/helpers/db/models/token_model.dart | 7 ++++--- firka/lib/ui/phone/screens/settings/settings_screen.dart | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/firka/lib/helpers/db/models/token_model.dart b/firka/lib/helpers/db/models/token_model.dart index 9c32268e..5110cb27 100644 --- a/firka/lib/helpers/db/models/token_model.dart +++ b/firka/lib/helpers/db/models/token_model.dart @@ -41,7 +41,8 @@ class TokenModel { var m = TokenModel(); final jwt = JWT.decode(resp.idToken); - final username = jwt.payload["kreta:user_name"].toString(); + final payload = jwt as Map; + final username = payload["kreta:user_name"].toString(); if (username.isNumeric() || (username.contains("G0") && username.substring(0, username.length - 3).isNumeric())) { @@ -58,8 +59,8 @@ class TokenModel { m.studentIdNorm = value & 0x3FFFFFFF; } - m.studentId = jwt.payload["kreta:user_name"]; - m.iss = jwt.payload["kreta:institute_code"]; + m.studentId = payload["kreta:user_name"]; + m.iss = payload["kreta:institute_code"]; m.idToken = resp.idToken; m.accessToken = resp.accessToken; m.refreshToken = resp.refreshToken; diff --git a/firka/lib/ui/phone/screens/settings/settings_screen.dart b/firka/lib/ui/phone/screens/settings/settings_screen.dart index 1e85de89..76483831 100644 --- a/firka/lib/ui/phone/screens/settings/settings_screen.dart +++ b/firka/lib/ui/phone/screens/settings/settings_screen.dart @@ -590,10 +590,11 @@ class _SettingsScreenState extends FirkaState { final token = widget.data.tokens[i]; final jwt = JWT.decode(token.idToken!); String studentRole; - if (jwt.payload["role"] == "Tanulo") { + final payload = jwt as Map; + if (payload["role"] == "Tanulo") { studentRole = "Tanuló"; } else { - studentRole = jwt.payload["role"]; + studentRole = payload["role"]; } widgets.add(GestureDetector( child: SizedBox( @@ -601,7 +602,7 @@ class _SettingsScreenState extends FirkaState { child: FirkaCard( left: [ Text( - jwt.payload["name"], + payload["name"], style: appStyle.fonts.B_16R .apply(color: appStyle.colors.textPrimary), ),