From c3a17dbf37b49fcb8394ed857f8cc871a4ff7279 Mon Sep 17 00:00:00 2001 From: Dat PHAM HOANG Date: Mon, 27 Mar 2023 15:30:37 +0200 Subject: [PATCH] [SLO] Add discoverOIDC method (cherry picked from commit c99efecb34c56bb40a584923a0861e15fb111986) --- .../login/data/datasource/authentication_oidc_datasource.dart | 4 +++- .../authentication_client/authentication_client_base.dart | 3 ++- .../domain/repository/authentication_oidc_repository.dart | 4 +++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/features/login/data/datasource/authentication_oidc_datasource.dart b/lib/features/login/data/datasource/authentication_oidc_datasource.dart index fc198603d..c801ab3ea 100644 --- a/lib/features/login/data/datasource/authentication_oidc_datasource.dart +++ b/lib/features/login/data/datasource/authentication_oidc_datasource.dart @@ -6,6 +6,8 @@ abstract class AuthenticationOIDCDataSource { Future getOIDCConfiguration(OIDCResponse oidcResponse); + Future discoverOIDC(OIDCConfiguration oidcConfiguration); + Future getTokenOIDC(String clientId, String redirectUrl, String discoveryUrl, List scopes); Future persistTokenOIDC(TokenOIDC tokenOidc); @@ -27,7 +29,7 @@ abstract class AuthenticationOIDCDataSource { List scopes, String refreshToken); - Future logout(TokenId tokenId, OIDCConfiguration config); + Future logout(TokenId tokenId, OIDCConfiguration config, OIDCDiscoveryResponse oidcRescovery); Future authenticateOidcOnBrowser( String clientId, diff --git a/lib/features/login/data/network/authentication_client/authentication_client_base.dart b/lib/features/login/data/network/authentication_client/authentication_client_base.dart index 97ab33043..a129bb993 100644 --- a/lib/features/login/data/network/authentication_client/authentication_client_base.dart +++ b/lib/features/login/data/network/authentication_client/authentication_client_base.dart @@ -1,5 +1,6 @@ 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/network/authentication_client/authentication_client_mobile.dart' @@ -27,7 +28,7 @@ abstract class AuthenticationClientBase { List scopes, String refreshToken); - Future logoutOidc(TokenId tokenId, OIDCConfiguration config); + Future logoutOidc(TokenId tokenId, OIDCConfiguration config, OIDCDiscoveryResponse oidcRescovery); factory AuthenticationClientBase() => getAuthenticationClientImplementation(); } \ No newline at end of file diff --git a/lib/features/login/domain/repository/authentication_oidc_repository.dart b/lib/features/login/domain/repository/authentication_oidc_repository.dart index 26eadd5fe..dd6eafa9c 100644 --- a/lib/features/login/domain/repository/authentication_oidc_repository.dart +++ b/lib/features/login/domain/repository/authentication_oidc_repository.dart @@ -6,6 +6,8 @@ abstract class AuthenticationOIDCRepository { Future getOIDCConfiguration(OIDCResponse oidcResponse); + Future discoverOIDC(OIDCConfiguration oidcConfiguration); + Future getTokenOIDC(String clientId, String redirectUrl, String discoveryUrl, List scopes); Future persistTokenOIDC(TokenOIDC tokenOidc); @@ -27,7 +29,7 @@ abstract class AuthenticationOIDCRepository { List scopes, String refreshToken); - Future logout(TokenId tokenId, OIDCConfiguration config); + Future logout(TokenId tokenId, OIDCConfiguration config, OIDCDiscoveryResponse oidcRescovery); Future authenticateOidcOnBrowser( String clientId,