TF-886 Implement StoreAuthenticationInfo in repository and datasource
This commit is contained in:
@@ -1,10 +1,16 @@
|
|||||||
|
import 'dart:convert';
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
import 'dart:typed_data';
|
||||||
|
|
||||||
|
import 'package:core/utils/app_logger.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:hive/hive.dart';
|
import 'package:hive/hive.dart';
|
||||||
import 'package:path_provider/path_provider.dart' as path_provider;
|
import 'package:path_provider/path_provider.dart' as path_provider;
|
||||||
|
import 'package:shared_preferences/shared_preferences.dart';
|
||||||
import 'package:tmail_ui_user/features/login/data/model/account_cache.dart';
|
import 'package:tmail_ui_user/features/login/data/model/account_cache.dart';
|
||||||
|
import 'package:tmail_ui_user/features/login/data/model/authentication_info_cache.dart';
|
||||||
import 'package:tmail_ui_user/features/login/data/model/token_oidc_cache.dart';
|
import 'package:tmail_ui_user/features/login/data/model/token_oidc_cache.dart';
|
||||||
|
import 'package:tmail_ui_user/features/login/data/utils/login_constant.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/data/model/mailbox_cache.dart';
|
import 'package:tmail_ui_user/features/mailbox/data/model/mailbox_cache.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/data/model/mailbox_rights_cache.dart';
|
import 'package:tmail_ui_user/features/mailbox/data/model/mailbox_rights_cache.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/data/model/state_cache.dart';
|
import 'package:tmail_ui_user/features/mailbox/data/model/state_cache.dart';
|
||||||
@@ -31,6 +37,19 @@ class HiveCacheConfig {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Future<Uint8List?> getEncryptionKey() async {
|
||||||
|
final sharedPreference = Get.find<SharedPreferences>();
|
||||||
|
final containsEncryptionKey = sharedPreference.containsKey(LoginConstant.keyHiveEncrypt);
|
||||||
|
if (!containsEncryptionKey) {
|
||||||
|
final key = Hive.generateSecureKey();
|
||||||
|
await sharedPreference.setString(LoginConstant.keyHiveEncrypt, base64UrlEncode(key));
|
||||||
|
}
|
||||||
|
final keyStored = sharedPreference.getString(LoginConstant.keyHiveEncrypt) ?? '';
|
||||||
|
final encryptionKey = base64Url.decode(keyStored);
|
||||||
|
log('HiveCacheConfig::getEncryptionKey(): Encryption key: $encryptionKey');
|
||||||
|
return encryptionKey;
|
||||||
|
}
|
||||||
|
|
||||||
void registerAdapter() {
|
void registerAdapter() {
|
||||||
Hive.registerAdapter(MailboxCacheAdapter());
|
Hive.registerAdapter(MailboxCacheAdapter());
|
||||||
Hive.registerAdapter(MailboxRightsCacheAdapter());
|
Hive.registerAdapter(MailboxRightsCacheAdapter());
|
||||||
@@ -41,6 +60,7 @@ class HiveCacheConfig {
|
|||||||
Hive.registerAdapter(RecentSearchCacheAdapter());
|
Hive.registerAdapter(RecentSearchCacheAdapter());
|
||||||
Hive.registerAdapter(TokenOidcCacheAdapter());
|
Hive.registerAdapter(TokenOidcCacheAdapter());
|
||||||
Hive.registerAdapter(AccountCacheAdapter());
|
Hive.registerAdapter(AccountCacheAdapter());
|
||||||
|
Hive.registerAdapter(AuthenticationInfoCacheAdapter());
|
||||||
}
|
}
|
||||||
|
|
||||||
Future closeHive() async {
|
Future closeHive() async {
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ import 'package:tmail_ui_user/features/login/data/datasource/authentication_oidc
|
|||||||
import 'package:tmail_ui_user/features/login/data/datasource_impl/authentication_oidc_datasource_impl.dart';
|
import 'package:tmail_ui_user/features/login/data/datasource_impl/authentication_oidc_datasource_impl.dart';
|
||||||
import 'package:tmail_ui_user/features/login/data/datasource_impl/hive_account_datasource_impl.dart';
|
import 'package:tmail_ui_user/features/login/data/datasource_impl/hive_account_datasource_impl.dart';
|
||||||
import 'package:tmail_ui_user/features/login/data/local/account_cache_manager.dart';
|
import 'package:tmail_ui_user/features/login/data/local/account_cache_manager.dart';
|
||||||
|
import 'package:tmail_ui_user/features/login/data/local/authentication_info_cache_manager.dart';
|
||||||
import 'package:tmail_ui_user/features/login/data/local/oidc_configuration_cache_manager.dart';
|
import 'package:tmail_ui_user/features/login/data/local/oidc_configuration_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/local/token_oidc_cache_manager.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/authentication_client/authentication_client_base.dart';
|
||||||
@@ -149,7 +150,9 @@ class EmailBindings extends BaseBindings {
|
|||||||
Get.find<HtmlDataSource>(),
|
Get.find<HtmlDataSource>(),
|
||||||
Get.find<StateDataSource>()
|
Get.find<StateDataSource>()
|
||||||
));
|
));
|
||||||
Get.lazyPut(() => CredentialRepositoryImpl(Get.find<SharedPreferences>()));
|
Get.lazyPut(() => CredentialRepositoryImpl(
|
||||||
|
Get.find<SharedPreferences>(),
|
||||||
|
Get.find<AuthenticationInfoCacheManager>(),));
|
||||||
Get.lazyPut(() => AccountRepositoryImpl(Get.find<AccountDatasource>()));
|
Get.lazyPut(() => AccountRepositoryImpl(Get.find<AccountDatasource>()));
|
||||||
Get.lazyPut(() => AuthenticationOIDCRepositoryImpl(Get.find<AuthenticationOIDCDataSource>()));
|
Get.lazyPut(() => AuthenticationOIDCRepositoryImpl(Get.find<AuthenticationOIDCDataSource>()));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
import 'package:tmail_ui_user/features/caching/authentication_info_cache_client.dart';
|
||||||
|
import 'package:tmail_ui_user/features/login/data/model/authentication_info_cache.dart';
|
||||||
|
|
||||||
|
class AuthenticationInfoCacheManager {
|
||||||
|
final AuthenticationInfoCacheClient _authenticationInfoCacheClient;
|
||||||
|
|
||||||
|
AuthenticationInfoCacheManager(this._authenticationInfoCacheClient);
|
||||||
|
|
||||||
|
Future<void> storeAuthenticationInfo(AuthenticationInfoCache authenticationInfoCache) {
|
||||||
|
return _authenticationInfoCacheClient.insertItem(
|
||||||
|
AuthenticationInfoCache.keyCacheValue,
|
||||||
|
authenticationInfoCache);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,14 +2,20 @@ import 'dart:convert';
|
|||||||
|
|
||||||
import 'package:model/model.dart';
|
import 'package:model/model.dart';
|
||||||
import 'package:shared_preferences/shared_preferences.dart';
|
import 'package:shared_preferences/shared_preferences.dart';
|
||||||
|
import 'package:tmail_ui_user/features/login/data/local/authentication_info_cache_manager.dart';
|
||||||
|
import 'package:tmail_ui_user/features/login/data/model/authentication_info_cache.dart';
|
||||||
import 'package:tmail_ui_user/features/login/data/utils/login_constant.dart';
|
import 'package:tmail_ui_user/features/login/data/utils/login_constant.dart';
|
||||||
import 'package:tmail_ui_user/features/login/domain/repository/credential_repository.dart';
|
import 'package:tmail_ui_user/features/login/domain/repository/credential_repository.dart';
|
||||||
|
|
||||||
class CredentialRepositoryImpl extends CredentialRepository {
|
class CredentialRepositoryImpl extends CredentialRepository {
|
||||||
|
|
||||||
final SharedPreferences sharedPreferences;
|
final SharedPreferences sharedPreferences;
|
||||||
|
final AuthenticationInfoCacheManager _authenticationInfoCacheManager;
|
||||||
|
|
||||||
CredentialRepositoryImpl(this.sharedPreferences);
|
CredentialRepositoryImpl(
|
||||||
|
this.sharedPreferences,
|
||||||
|
this._authenticationInfoCacheManager
|
||||||
|
);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<Uri> getBaseUrl() async {
|
Future<Uri> getBaseUrl() async {
|
||||||
@@ -74,4 +80,9 @@ class CredentialRepositoryImpl extends CredentialRepository {
|
|||||||
final json = jsonEncode(userProfileResponse.toJson());
|
final json = jsonEncode(userProfileResponse.toJson());
|
||||||
await sharedPreferences.setString(LoginConstant.keyUserProfile, json);
|
await sharedPreferences.setString(LoginConstant.keyUserProfile, json);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<void> storeAuthenticationInfo(AuthenticationInfoCache authenticationInfoCache) {
|
||||||
|
return _authenticationInfoCacheManager.storeAuthenticationInfo(authenticationInfoCache);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
|
|
||||||
class LoginConstant {
|
class LoginConstant {
|
||||||
static const keyBaseUrl = 'KEY_BASE_URL';
|
static const String keyBaseUrl = 'KEY_BASE_URL';
|
||||||
static const keyUserName = 'KEY_USER_NAME';
|
static const String keyHiveEncrypt = 'KEY_HIVE_ENCRYPT';
|
||||||
static const keyPassword = 'KEY_PASSWORD';
|
|
||||||
static const keyUserProfile = 'KEY_USER_PROFILE';
|
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
import 'package:model/model.dart';
|
import 'package:model/model.dart';
|
||||||
|
import 'package:tmail_ui_user/features/login/data/model/authentication_info_cache.dart';
|
||||||
|
|
||||||
abstract class CredentialRepository {
|
abstract class CredentialRepository {
|
||||||
Future saveBaseUrl(Uri baseUrl);
|
Future saveBaseUrl(Uri baseUrl);
|
||||||
@@ -7,14 +8,10 @@ abstract class CredentialRepository {
|
|||||||
|
|
||||||
Future<Uri> getBaseUrl();
|
Future<Uri> getBaseUrl();
|
||||||
|
|
||||||
Future saveUserName(UserName userName);
|
|
||||||
|
|
||||||
Future removeUserName();
|
Future removeUserName();
|
||||||
|
|
||||||
Future<UserName> getUserName();
|
Future<UserName> getUserName();
|
||||||
|
|
||||||
Future savePassword(Password password);
|
|
||||||
|
|
||||||
Future removePassword();
|
Future removePassword();
|
||||||
|
|
||||||
Future<Password> getPassword();
|
Future<Password> getPassword();
|
||||||
@@ -24,4 +21,6 @@ abstract class CredentialRepository {
|
|||||||
Future removeUserProfile();
|
Future removeUserProfile();
|
||||||
|
|
||||||
Future<UserProfile> getUserProfile();
|
Future<UserProfile> getUserProfile();
|
||||||
|
|
||||||
|
Future<void> storeAuthenticationInfo(AuthenticationInfoCache authenticationInfoCache);
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
import 'package:core/core.dart';
|
import 'package:core/core.dart';
|
||||||
import 'package:dartz/dartz.dart';
|
import 'package:dartz/dartz.dart';
|
||||||
import 'package:model/model.dart';
|
import 'package:model/model.dart';
|
||||||
|
import 'package:tmail_ui_user/features/login/data/model/authentication_info_cache.dart';
|
||||||
import 'package:tmail_ui_user/features/login/domain/repository/account_repository.dart';
|
import 'package:tmail_ui_user/features/login/domain/repository/account_repository.dart';
|
||||||
import 'package:tmail_ui_user/features/login/domain/repository/authentication_repository.dart';
|
import 'package:tmail_ui_user/features/login/domain/repository/authentication_repository.dart';
|
||||||
import 'package:tmail_ui_user/features/login/domain/repository/credential_repository.dart';
|
import 'package:tmail_ui_user/features/login/domain/repository/credential_repository.dart';
|
||||||
@@ -19,8 +20,8 @@ class AuthenticationInteractor {
|
|||||||
final user = await authenticationRepository.authenticationUser(baseUrl, userName, password);
|
final user = await authenticationRepository.authenticationUser(baseUrl, userName, password);
|
||||||
await Future.wait([
|
await Future.wait([
|
||||||
credentialRepository.saveBaseUrl(baseUrl),
|
credentialRepository.saveBaseUrl(baseUrl),
|
||||||
credentialRepository.saveUserName(userName),
|
credentialRepository.storeAuthenticationInfo(
|
||||||
credentialRepository.savePassword(password),
|
AuthenticationInfoCache(userName.userName, password.value)),
|
||||||
credentialRepository.saveUserProfile(user),
|
credentialRepository.saveUserProfile(user),
|
||||||
_accountRepository.setCurrentAccount(Account(
|
_accountRepository.setCurrentAccount(Account(
|
||||||
userName.userName,
|
userName.userName,
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import 'package:tmail_ui_user/features/login/data/datasource_impl/authentication
|
|||||||
import 'package:tmail_ui_user/features/login/data/datasource_impl/authentication_oidc_datasource_impl.dart';
|
import 'package:tmail_ui_user/features/login/data/datasource_impl/authentication_oidc_datasource_impl.dart';
|
||||||
import 'package:tmail_ui_user/features/login/data/datasource_impl/hive_account_datasource_impl.dart';
|
import 'package:tmail_ui_user/features/login/data/datasource_impl/hive_account_datasource_impl.dart';
|
||||||
import 'package:tmail_ui_user/features/login/data/local/account_cache_manager.dart';
|
import 'package:tmail_ui_user/features/login/data/local/account_cache_manager.dart';
|
||||||
|
import 'package:tmail_ui_user/features/login/data/local/authentication_info_cache_manager.dart';
|
||||||
import 'package:tmail_ui_user/features/login/data/local/oidc_configuration_cache_manager.dart';
|
import 'package:tmail_ui_user/features/login/data/local/oidc_configuration_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/local/token_oidc_cache_manager.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/authentication_client/authentication_client_base.dart';
|
||||||
@@ -110,7 +111,9 @@ class LoginBindings extends BaseBindings {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
void bindingsRepositoryImpl() {
|
void bindingsRepositoryImpl() {
|
||||||
Get.lazyPut(() => CredentialRepositoryImpl(Get.find<SharedPreferences>()));
|
Get.lazyPut(() => CredentialRepositoryImpl(
|
||||||
|
Get.find<SharedPreferences>(),
|
||||||
|
Get.find<AuthenticationInfoCacheManager>()));
|
||||||
Get.lazyPut(() => AuthenticationRepositoryImpl(Get.find<AuthenticationDataSource>()));
|
Get.lazyPut(() => AuthenticationRepositoryImpl(Get.find<AuthenticationDataSource>()));
|
||||||
Get.lazyPut(() => AuthenticationOIDCRepositoryImpl(Get.find<AuthenticationOIDCDataSource>()));
|
Get.lazyPut(() => AuthenticationOIDCRepositoryImpl(Get.find<AuthenticationOIDCDataSource>()));
|
||||||
Get.lazyPut(() => AccountRepositoryImpl(Get.find<AccountDatasource>()));
|
Get.lazyPut(() => AccountRepositoryImpl(Get.find<AccountDatasource>()));
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import 'package:tmail_ui_user/features/caching/state_cache_client.dart';
|
|||||||
import 'package:tmail_ui_user/features/email/data/datasource/email_datasource.dart';
|
import 'package:tmail_ui_user/features/email/data/datasource/email_datasource.dart';
|
||||||
import 'package:tmail_ui_user/features/email/data/datasource_impl/email_datasource_impl.dart';
|
import 'package:tmail_ui_user/features/email/data/datasource_impl/email_datasource_impl.dart';
|
||||||
import 'package:tmail_ui_user/features/email/data/network/email_api.dart';
|
import 'package:tmail_ui_user/features/email/data/network/email_api.dart';
|
||||||
|
import 'package:tmail_ui_user/features/login/data/local/authentication_info_cache_manager.dart';
|
||||||
import 'package:tmail_ui_user/features/login/data/repository/credential_repository_impl.dart';
|
import 'package:tmail_ui_user/features/login/data/repository/credential_repository_impl.dart';
|
||||||
import 'package:tmail_ui_user/features/login/domain/repository/credential_repository.dart';
|
import 'package:tmail_ui_user/features/login/domain/repository/credential_repository.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/data/datasource/mailbox_datasource.dart';
|
import 'package:tmail_ui_user/features/mailbox/data/datasource/mailbox_datasource.dart';
|
||||||
@@ -97,7 +98,9 @@ class MailboxBindings extends BaseBindings {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
void bindingsRepositoryImpl() {
|
void bindingsRepositoryImpl() {
|
||||||
Get.lazyPut(() => CredentialRepositoryImpl(Get.find<SharedPreferences>()));
|
Get.lazyPut(() => CredentialRepositoryImpl(
|
||||||
|
Get.find<SharedPreferences>(),
|
||||||
|
Get.find<AuthenticationInfoCacheManager>()));
|
||||||
Get.lazyPut(() => MailboxRepositoryImpl(
|
Get.lazyPut(() => MailboxRepositoryImpl(
|
||||||
{
|
{
|
||||||
DataSourceType.network: Get.find<MailboxDataSource>(),
|
DataSourceType.network: Get.find<MailboxDataSource>(),
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:shared_preferences/shared_preferences.dart';
|
import 'package:shared_preferences/shared_preferences.dart';
|
||||||
|
import 'package:tmail_ui_user/features/login/data/local/authentication_info_cache_manager.dart';
|
||||||
import 'package:tmail_ui_user/features/login/data/repository/credential_repository_impl.dart';
|
import 'package:tmail_ui_user/features/login/data/repository/credential_repository_impl.dart';
|
||||||
import 'package:tmail_ui_user/features/login/domain/repository/credential_repository.dart';
|
import 'package:tmail_ui_user/features/login/domain/repository/credential_repository.dart';
|
||||||
import 'package:tmail_ui_user/features/login/domain/usecases/get_credential_interactor.dart';
|
import 'package:tmail_ui_user/features/login/domain/usecases/get_credential_interactor.dart';
|
||||||
@@ -22,6 +23,8 @@ class CredentialBindings extends Bindings {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void bindingsRepositoryImpl() {
|
void bindingsRepositoryImpl() {
|
||||||
Get.put(CredentialRepositoryImpl(Get.find<SharedPreferences>()));
|
Get.put(CredentialRepositoryImpl(
|
||||||
|
Get.find<SharedPreferences>(),
|
||||||
|
Get.find<AuthenticationInfoCacheManager>()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3,6 +3,7 @@ import 'package:core/core.dart';
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:shared_preferences/shared_preferences.dart';
|
import 'package:shared_preferences/shared_preferences.dart';
|
||||||
import 'package:tmail_ui_user/features/caching/account_cache_client.dart';
|
import 'package:tmail_ui_user/features/caching/account_cache_client.dart';
|
||||||
|
import 'package:tmail_ui_user/features/caching/authentication_info_cache_client.dart';
|
||||||
import 'package:tmail_ui_user/features/caching/caching_manager.dart';
|
import 'package:tmail_ui_user/features/caching/caching_manager.dart';
|
||||||
import 'package:tmail_ui_user/features/caching/email_cache_client.dart';
|
import 'package:tmail_ui_user/features/caching/email_cache_client.dart';
|
||||||
import 'package:tmail_ui_user/features/caching/mailbox_cache_client.dart';
|
import 'package:tmail_ui_user/features/caching/mailbox_cache_client.dart';
|
||||||
@@ -11,6 +12,7 @@ import 'package:tmail_ui_user/features/caching/state_cache_client.dart';
|
|||||||
import 'package:tmail_ui_user/features/caching/token_oidc_cache_client.dart';
|
import 'package:tmail_ui_user/features/caching/token_oidc_cache_client.dart';
|
||||||
import 'package:tmail_ui_user/features/cleanup/data/local/recent_search_cache_manager.dart';
|
import 'package:tmail_ui_user/features/cleanup/data/local/recent_search_cache_manager.dart';
|
||||||
import 'package:tmail_ui_user/features/login/data/local/account_cache_manager.dart';
|
import 'package:tmail_ui_user/features/login/data/local/account_cache_manager.dart';
|
||||||
|
import 'package:tmail_ui_user/features/login/data/local/authentication_info_cache_manager.dart';
|
||||||
import 'package:tmail_ui_user/features/login/data/local/oidc_configuration_cache_manager.dart';
|
import 'package:tmail_ui_user/features/login/data/local/oidc_configuration_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/local/token_oidc_cache_manager.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/data/local/mailbox_cache_manager.dart';
|
import 'package:tmail_ui_user/features/mailbox/data/local/mailbox_cache_manager.dart';
|
||||||
@@ -40,7 +42,9 @@ class LocalBindings extends Bindings {
|
|||||||
Get.put(TokenOidcCacheClient());
|
Get.put(TokenOidcCacheClient());
|
||||||
Get.put(TokenOidcCacheManager(Get.find<TokenOidcCacheClient>()));
|
Get.put(TokenOidcCacheManager(Get.find<TokenOidcCacheClient>()));
|
||||||
Get.put(AccountCacheClient());
|
Get.put(AccountCacheClient());
|
||||||
|
Get.put(AuthenticationInfoCacheClient());
|
||||||
Get.put(AccountCacheManager(Get.find<AccountCacheClient>()));
|
Get.put(AccountCacheManager(Get.find<AccountCacheClient>()));
|
||||||
|
Get.put(AuthenticationInfoCacheManager(Get.find<AuthenticationInfoCacheClient>()));
|
||||||
Get.put(OidcConfigurationCacheManager(Get.find<SharedPreferences>()));
|
Get.put(OidcConfigurationCacheManager(Get.find<SharedPreferences>()));
|
||||||
Get.put(LanguageCacheManager(Get.find<SharedPreferences>()));
|
Get.put(LanguageCacheManager(Get.find<SharedPreferences>()));
|
||||||
Get.put(CachingManager(
|
Get.put(CachingManager(
|
||||||
@@ -50,6 +54,7 @@ class LocalBindings extends Bindings {
|
|||||||
Get.find<RecentSearchCacheClient>(),
|
Get.find<RecentSearchCacheClient>(),
|
||||||
Get.find<TokenOidcCacheClient>(),
|
Get.find<TokenOidcCacheClient>(),
|
||||||
Get.find<AccountCacheClient>(),
|
Get.find<AccountCacheClient>(),
|
||||||
|
Get.find<AuthenticationInfoCacheClient>(),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user