TF-4145 Implement get oidc user_info from endpoint of oidc configuration

This commit is contained in:
dab246
2025-11-12 16:25:51 +07:00
committed by Dat H. Pham
parent 655a1bf81a
commit 43de7edd47
14 changed files with 185 additions and 6 deletions
@@ -4,4 +4,6 @@ class CanNotFoundOIDCLinks implements Exception {}
class CanNotFindToken implements Exception {}
class CanRetryOIDCException implements Exception {}
class CanRetryOIDCException implements Exception {}
class NotFoundUserInfoEndpointException implements Exception {}
@@ -10,6 +10,7 @@ import 'package:model/oidc/oidc_configuration.dart';
import 'package:model/oidc/request/oidc_request.dart';
import 'package:model/oidc/response/oidc_discovery_response.dart';
import 'package:model/oidc/response/oidc_response.dart';
import 'package:model/oidc/response/oidc_user_info.dart';
import 'package:tmail_ui_user/features/login/data/extensions/service_path_extension.dart';
import 'package:tmail_ui_user/features/login/data/network/config/oidc_constant.dart';
import 'package:tmail_ui_user/features/login/data/network/endpoint.dart';
@@ -84,4 +85,14 @@ class OIDCHttpClient {
return OIDCDiscoveryResponse.fromJson(jsonDecode(result));
}
}
Future<OidcUserInfo> fetchUserInfo(String userInfoEndpoint) async {
final result = await _dioClient.get(userInfoEndpoint);
if (result is Map<String, dynamic>) {
return OidcUserInfo.fromJson(result);
} else {
return OidcUserInfo.fromJson(jsonDecode(result));
}
}
}