diff --git a/lib/features/login/data/extensions/token_response_extension.dart b/lib/features/login/data/extensions/token_response_extension.dart index 3807bdc7a..fbfff7910 100644 --- a/lib/features/login/data/extensions/token_response_extension.dart +++ b/lib/features/login/data/extensions/token_response_extension.dart @@ -4,11 +4,11 @@ import 'package:model/model.dart'; extension TokenResponseExtension on TokenResponse { - TokenOIDC toTokenOIDC() { + TokenOIDC toTokenOIDC({String? maybeAvailableRefreshToken}) { return TokenOIDC( accessToken ?? '', TokenId(idToken ?? ''), - refreshToken ?? '', + refreshToken ?? maybeAvailableRefreshToken ?? '', expiredTime: accessTokenExpirationDateTime ?? DateTime.now()); } } \ No newline at end of file diff --git a/lib/features/login/data/network/authentication_client/authentication_client_mobile.dart b/lib/features/login/data/network/authentication_client/authentication_client_mobile.dart index 2f20337af..9bfe11283 100644 --- a/lib/features/login/data/network/authentication_client/authentication_client_mobile.dart +++ b/lib/features/login/data/network/authentication_client/authentication_client_mobile.dart @@ -7,10 +7,10 @@ import 'package:model/oidc/response/oidc_discovery_response.dart'; import 'package:model/oidc/token_id.dart'; import 'package:model/oidc/token_oidc.dart'; import 'package:tmail_ui_user/features/login/data/extensions/authentication_token_extension.dart'; -import 'package:tmail_ui_user/features/login/domain/extensions/oidc_configuration_extensions.dart'; import 'package:tmail_ui_user/features/login/data/extensions/token_response_extension.dart'; import 'package:tmail_ui_user/features/login/data/network/authentication_client/authentication_client_base.dart'; import 'package:tmail_ui_user/features/login/domain/exceptions/authentication_exception.dart'; +import 'package:tmail_ui_user/features/login/domain/extensions/oidc_configuration_extensions.dart'; class AuthenticationClientMobile implements AuthenticationClientBase { @@ -75,7 +75,7 @@ class AuthenticationClientMobile implements AuthenticationClientBase { log('AuthenticationClientMobile::refreshingTokensOIDC(): refreshToken: ${tokenResponse?.accessToken}'); if (tokenResponse != null) { - final tokenOIDC = tokenResponse.toTokenOIDC(); + final tokenOIDC = tokenResponse.toTokenOIDC(maybeAvailableRefreshToken: refreshToken); if (tokenOIDC.isTokenValid()) { return tokenOIDC; } else { diff --git a/lib/features/login/data/network/authentication_client/authentication_client_web.dart b/lib/features/login/data/network/authentication_client/authentication_client_web.dart index ae134abcc..1544923c0 100644 --- a/lib/features/login/data/network/authentication_client/authentication_client_web.dart +++ b/lib/features/login/data/network/authentication_client/authentication_client_web.dart @@ -1,19 +1,19 @@ import 'package:core/utils/app_logger.dart'; +import 'package:flutter_appauth_platform_interface/flutter_appauth_platform_interface.dart'; import 'package:get/get.dart'; +import 'package:model/oidc/oidc_configuration.dart'; import 'package:model/oidc/response/oidc_discovery_response.dart'; +import 'package:model/oidc/token_id.dart'; +import 'package:model/oidc/token_oidc.dart'; import 'package:tmail_ui_user/features/login/data/extensions/authentication_token_extension.dart'; -import 'package:tmail_ui_user/features/login/domain/extensions/oidc_configuration_extensions.dart'; import 'package:tmail_ui_user/features/login/data/extensions/token_response_extension.dart'; +import 'package:tmail_ui_user/features/login/data/network/authentication_client/authentication_client_base.dart'; import 'package:tmail_ui_user/features/login/data/network/config/oidc_constant.dart'; import 'package:tmail_ui_user/features/login/data/utils/library_platform/app_auth_plugin/app_auth_plugin.dart'; import 'package:tmail_ui_user/features/login/domain/exceptions/authentication_exception.dart'; +import 'package:tmail_ui_user/features/login/domain/extensions/oidc_configuration_extensions.dart'; import 'package:universal_html/html.dart' as html; -import 'package:tmail_ui_user/features/login/data/network/authentication_client/authentication_client_base.dart'; -import 'package:flutter_appauth_platform_interface/flutter_appauth_platform_interface.dart'; -import 'package:model/oidc/oidc_configuration.dart'; -import 'package:model/oidc/token_id.dart'; -import 'package:model/oidc/token_oidc.dart'; class AuthenticationClientWeb implements AuthenticationClientBase { @@ -74,7 +74,7 @@ class AuthenticationClientWeb implements AuthenticationClientBase { scopes: scopes)); if (tokenResponse != null) { - final tokenOIDC = tokenResponse.toTokenOIDC(); + final tokenOIDC = tokenResponse.toTokenOIDC(maybeAvailableRefreshToken: refreshToken); if (tokenOIDC.isTokenValid()) { return tokenOIDC; } else {