TF-624 Setup DOMAIN_REDIRECT_URL/WEB_OIDC_CLIENT_ID in env file
This commit is contained in:
@@ -1 +1,3 @@
|
||||
SERVER_URL=http://localhost
|
||||
SERVER_URL=http://localhost
|
||||
DOMAIN_REDIRECT_URL=http://localhost:3000
|
||||
WEB_OIDC_CLIENT_ID=teammail-web
|
||||
@@ -4,6 +4,7 @@ import 'package:dartz/dartz.dart';
|
||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/repository/email_repository.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/download_attachments_state.dart';
|
||||
import 'package:tmail_ui_user/features/login/data/extensions/oidc_configuration_extensions.dart';
|
||||
import 'package:tmail_ui_user/features/login/data/network/config/authorization_interceptors.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/exceptions/authentication_exception.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/repository/account_repository.dart';
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
|
||||
import 'package:core/utils/build_utils.dart';
|
||||
import 'package:model/model.dart';
|
||||
import 'package:tmail_ui_user/main/utils/app_config.dart';
|
||||
|
||||
extension OidcConfigurationExtensions on OIDCConfiguration {
|
||||
|
||||
String get redirectUrl {
|
||||
if (BuildUtils.isWeb) {
|
||||
if (AppConfig.domainRedirectUrl.endsWith('/')) {
|
||||
return AppConfig.domainRedirectUrl + loginRedirectOidcWeb;
|
||||
} else {
|
||||
return AppConfig.domainRedirectUrl + '/' + loginRedirectOidcWeb;
|
||||
}
|
||||
} else {
|
||||
return redirectOidcMobile;
|
||||
}
|
||||
}
|
||||
|
||||
String get logoutRedirectUrl {
|
||||
if (BuildUtils.isWeb) {
|
||||
if (AppConfig.domainRedirectUrl.endsWith('/')) {
|
||||
return AppConfig.domainRedirectUrl + logoutRedirectOidcWeb;
|
||||
} else {
|
||||
return AppConfig.domainRedirectUrl + '/' + logoutRedirectOidcWeb;
|
||||
}
|
||||
} else {
|
||||
return redirectOidcMobile;
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
@@ -6,6 +6,7 @@ import 'package:model/oidc/oidc_configuration.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/data/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';
|
||||
|
||||
+2
-2
@@ -2,8 +2,10 @@
|
||||
import 'package:core/utils/app_logger.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:tmail_ui_user/features/login/data/extensions/authentication_token_extension.dart';
|
||||
import 'package:tmail_ui_user/features/login/data/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/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:universal_html/html.dart' as html;
|
||||
import 'package:tmail_ui_user/features/login/data/network/authentication_client/authentication_client_base.dart';
|
||||
@@ -12,8 +14,6 @@ import 'package:model/oidc/oidc_configuration.dart';
|
||||
import 'package:model/oidc/token_id.dart';
|
||||
import 'package:model/oidc/token_oidc.dart';
|
||||
|
||||
import '../../utils/library_platform/app_auth_plugin/app_auth_plugin.dart';
|
||||
|
||||
class AuthenticationClientWeb implements AuthenticationClientBase {
|
||||
|
||||
final AppAuthWebPlugin _appAuthWeb;
|
||||
|
||||
@@ -8,6 +8,7 @@ import 'package:model/account/authentication_type.dart';
|
||||
import 'package:model/oidc/oidc_configuration.dart';
|
||||
import 'package:model/oidc/token.dart';
|
||||
import 'package:model/oidc/token_oidc.dart';
|
||||
import 'package:tmail_ui_user/features/login/data/extensions/oidc_configuration_extensions.dart';
|
||||
import 'package:tmail_ui_user/features/login/data/local/account_cache_manager.dart';
|
||||
import 'package:tmail_ui_user/features/login/data/local/token_oidc_cache_manager.dart';
|
||||
import 'package:tmail_ui_user/features/login/data/network/authentication_client/authentication_client_base.dart';
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import 'package:core/core.dart';
|
||||
import 'package:tmail_ui_user/main/utils/app_config.dart';
|
||||
|
||||
class OIDCConstant {
|
||||
static String get mobileOidcClientId => 'teammail-mobile';
|
||||
static String get webOidcClientId => 'teammail-web';
|
||||
static List<String> get oidcScope => ['openid', 'offline_access'];
|
||||
static const keyAuthorityOidc = 'KEY_AUTHORITY_OIDC';
|
||||
static const authResponseKey = "auth_info";
|
||||
|
||||
static String get clientId => BuildUtils.isWeb ? webOidcClientId : mobileOidcClientId;
|
||||
static String get clientId => BuildUtils.isWeb ? AppConfig.webOidcClientId : mobileOidcClientId;
|
||||
}
|
||||
@@ -4,6 +4,7 @@ import 'package:core/presentation/state/success.dart';
|
||||
import 'package:core/utils/app_logger.dart';
|
||||
import 'package:dartz/dartz.dart';
|
||||
import 'package:model/oidc/oidc_configuration.dart';
|
||||
import 'package:tmail_ui_user/features/login/data/extensions/oidc_configuration_extensions.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/repository/authentication_oidc_repository.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/state/authenticate_oidc_on_browser_state.dart';
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ import 'package:model/account/account.dart';
|
||||
import 'package:model/account/authentication_type.dart';
|
||||
import 'package:model/oidc/oidc_configuration.dart';
|
||||
import 'package:model/oidc/token_oidc.dart';
|
||||
import 'package:tmail_ui_user/features/login/data/extensions/oidc_configuration_extensions.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/repository/account_repository.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/repository/authentication_oidc_repository.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/repository/credential_repository.dart';
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
import 'package:core/core.dart';
|
||||
import 'package:dartz/dartz.dart';
|
||||
import 'package:model/model.dart';
|
||||
import 'package:tmail_ui_user/features/login/data/extensions/oidc_configuration_extensions.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/repository/account_repository.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/repository/authentication_oidc_repository.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/state/refresh_token_oidc_state.dart';
|
||||
|
||||
@@ -2,4 +2,6 @@ import 'package:flutter_dotenv/flutter_dotenv.dart';
|
||||
|
||||
class AppConfig {
|
||||
static String get baseUrl => dotenv.get('SERVER_URL', fallback: '');
|
||||
static String get domainRedirectUrl => dotenv.get('DOMAIN_REDIRECT_URL', fallback: '');
|
||||
static String get webOidcClientId => dotenv.get('WEB_OIDC_CLIENT_ID', fallback: '');
|
||||
}
|
||||
@@ -1,12 +1,11 @@
|
||||
|
||||
import 'package:core/utils/build_utils.dart';
|
||||
import 'package:equatable/equatable.dart';
|
||||
|
||||
class OIDCConfiguration with EquatableMixin {
|
||||
static const redirectOidcMobile = 'teammail.mobile://oauthredirect';
|
||||
static const redirectOidcWeb = 'http://localhost:3000/login-callback.html';
|
||||
static const logoutRedirectOidcWeb = 'http://localhost:3000/logout-callback.html';
|
||||
static const wellKnownOpenId = '.well-known/openid-configuration';
|
||||
final redirectOidcMobile = 'teammail.mobile://oauthredirect';
|
||||
final wellKnownOpenId = '.well-known/openid-configuration';
|
||||
final loginRedirectOidcWeb = 'login-callback.html';
|
||||
final logoutRedirectOidcWeb = 'logout-callback.html';
|
||||
|
||||
final String authority;
|
||||
final String clientId;
|
||||
@@ -26,10 +25,6 @@ class OIDCConfiguration with EquatableMixin {
|
||||
}
|
||||
}
|
||||
|
||||
String get redirectUrl => BuildUtils.isWeb ? redirectOidcWeb : redirectOidcMobile;
|
||||
|
||||
String get logoutRedirectUrl => BuildUtils.isWeb ? logoutRedirectOidcWeb : redirectOidcMobile;
|
||||
|
||||
String get clientIdHash => clientId.hashCode.toString();
|
||||
|
||||
@override
|
||||
|
||||
Reference in New Issue
Block a user