Skip to content

Commit ff06cee

Browse files
NikaHsnEquartey
authored andcommitted
chore(auth): update auth plugin impl and config state machine to use AuthOutputs instead of Auth config (#5456)
1 parent e9747e2 commit ff06cee

File tree

8 files changed

+48
-189
lines changed

8 files changed

+48
-189
lines changed

packages/auth/amplify_auth_cognito_dart/lib/src/auth_plugin_impl.dart

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ import 'package:amplify_auth_cognito_dart/src/state/state.dart';
4646
import 'package:amplify_auth_cognito_dart/src/util/cognito_iam_auth_provider.dart';
4747
import 'package:amplify_auth_cognito_dart/src/util/cognito_user_pools_auth_provider.dart';
4848
import 'package:amplify_core/amplify_core.dart';
49+
// ignore: implementation_imports
50+
import 'package:amplify_core/src/config/amplify_outputs/auth/auth_outputs.dart';
4951
// ignore: implementation_imports, invalid_use_of_internal_member
5052
import 'package:amplify_core/src/http/amplify_category_method.dart';
5153
import 'package:amplify_secure_storage_dart/amplify_secure_storage_dart.dart';
@@ -123,19 +125,15 @@ class AmplifyAuthCognitoDart extends AuthPluginInterface
123125
return cognitoIdp;
124126
}
125127

126-
/// The Cognito user pool configuration.
127-
CognitoUserPoolConfig get _userPoolConfig {
128-
final userPoolConfig = _stateMachine.get<CognitoUserPoolConfig>();
129-
if (userPoolConfig == null) {
128+
AuthOutputs get _authOutputs {
129+
final authOutputs = _stateMachine.get<AuthOutputs>();
130+
if (authOutputs?.userPoolId == null ||
131+
authOutputs?.userPoolClientId == null) {
130132
throw const InvalidAccountTypeException.noUserPool();
131133
}
132-
return userPoolConfig;
134+
return authOutputs!;
133135
}
134136

135-
/// The Cognito identity pool configuration.
136-
CognitoIdentityCredentialsProvider? get _identityPoolConfig =>
137-
_stateMachine.get();
138-
139137
/// The device metadata repository, used for handling device operations.
140138
DeviceMetadataRepository get _deviceRepo => _stateMachine.getOrCreate();
141139

@@ -304,13 +302,13 @@ class AmplifyAuthCognitoDart extends AuthPluginInterface
304302
/// If there is no federation active, this is a no-op.
305303
/// {@endtemplate}
306304
Future<void> clearFederationToIdentityPool() async {
307-
final identityPoolConfig = _identityPoolConfig;
308-
if (identityPoolConfig == null) {
305+
final identityPoolId = _authOutputs.identityPoolId;
306+
if (identityPoolId == null) {
309307
throw const InvalidAccountTypeException.noIdentityPool();
310308
}
311309
await stateMachine.acceptAndComplete(
312310
CredentialStoreEvent.clearCredentials(
313-
CognitoIdentityPoolKeys(identityPoolConfig.poolId),
311+
CognitoIdentityPoolKeys(identityPoolId),
314312
),
315313
);
316314
}
@@ -451,15 +449,16 @@ class AmplifyAuthCognitoDart extends AuthPluginInterface
451449
final result = await _cognitoIdp.resendConfirmationCode(
452450
cognito.ResendConfirmationCodeRequest.build((b) {
453451
b
454-
..clientId = _userPoolConfig.appClientId
452+
..clientId = _authOutputs.userPoolClientId
455453
..username = username
456454
..analyticsMetadata = _analyticsMetadata?.toBuilder();
457455

458-
final clientSecret = _userPoolConfig.appClientSecret;
456+
// ignore: invalid_use_of_internal_member
457+
final clientSecret = _authOutputs.appClientSecret;
459458
if (clientSecret != null) {
460459
b.secretHash = computeSecretHash(
461460
username,
462-
_userPoolConfig.appClientId,
461+
_authOutputs.userPoolClientId!,
463462
clientSecret,
464463
);
465464
}
@@ -763,16 +762,17 @@ class AmplifyAuthCognitoDart extends AuthPluginInterface
763762
final result = await _cognitoIdp.forgotPassword(
764763
cognito.ForgotPasswordRequest.build((b) {
765764
b
766-
..clientId = _userPoolConfig.appClientId
765+
..clientId = _authOutputs.userPoolClientId
767766
..username = username
768767
..analyticsMetadata = _analyticsMetadata?.toBuilder()
769768
..clientMetadata.addAll(pluginOptions.clientMetadata);
770769

771-
final clientSecret = _userPoolConfig.appClientSecret;
770+
// ignore: invalid_use_of_internal_member
771+
final clientSecret = _authOutputs.appClientSecret;
772772
if (clientSecret != null) {
773773
b.secretHash = computeSecretHash(
774774
username,
775-
_userPoolConfig.appClientId,
775+
_authOutputs.userPoolClientId!,
776776
clientSecret,
777777
);
778778
}
@@ -817,15 +817,16 @@ class AmplifyAuthCognitoDart extends AuthPluginInterface
817817
..username = username
818818
..password = newPassword
819819
..confirmationCode = confirmationCode
820-
..clientId = _userPoolConfig.appClientId
820+
..clientId = _authOutputs.userPoolClientId
821821
..clientMetadata.addAll(pluginOptions.clientMetadata)
822822
..analyticsMetadata = _analyticsMetadata?.toBuilder();
823823

824-
final clientSecret = _userPoolConfig.appClientSecret;
824+
// ignore: invalid_use_of_internal_member
825+
final clientSecret = _authOutputs.appClientSecret;
825826
if (clientSecret != null) {
826827
b.secretHash = computeSecretHash(
827828
username,
828-
_userPoolConfig.appClientId,
829+
_authOutputs.userPoolClientId!,
829830
clientSecret,
830831
);
831832
}

packages/auth/amplify_auth_cognito_dart/lib/src/model/auth_configuration.dart

Lines changed: 0 additions & 117 deletions
This file was deleted.

packages/auth/amplify_auth_cognito_dart/lib/src/state/machines/configuration_state_machine.dart

Lines changed: 16 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,14 @@ import 'dart:async';
66
// ignore: implementation_imports
77
import 'package:amplify_analytics_pinpoint_dart/src/impl/analytics_client/endpoint_client/endpoint_info_store_manager.dart';
88
import 'package:amplify_auth_cognito_dart/src/credentials/auth_plugin_credentials_provider.dart';
9-
import 'package:amplify_auth_cognito_dart/src/model/auth_configuration.dart';
109
import 'package:amplify_auth_cognito_dart/src/sdk/cognito_identity.dart';
1110
import 'package:amplify_auth_cognito_dart/src/sdk/cognito_identity_provider.dart';
1211
import 'package:amplify_auth_cognito_dart/src/sdk/sdk_bridge.dart';
1312
import 'package:amplify_auth_cognito_dart/src/state/cognito_state_machine.dart';
1413
import 'package:amplify_auth_cognito_dart/src/state/state.dart';
1514
import 'package:amplify_core/amplify_core.dart';
15+
// ignore: implementation_imports
16+
import 'package:amplify_core/src/config/amplify_outputs/analytics/analytics_outputs.dart';
1617

1718
/// {@template amplify_auth_cognito.configuration_state_machine}
1819
/// Manages configuration of the Auth category.
@@ -69,36 +70,24 @@ final class ConfigurationStateMachine
6970
throw ConfigurationError('No Cognito plugin config available');
7071
}
7172
addInstance(authOutputs);
72-
final config = AuthConfiguration.fromAmplifyOutputs(event.config);
73-
addInstance(config);
74-
7573
final waiters = <Future<void>>[];
76-
final userPoolConfig = config.userPoolConfig;
77-
if (userPoolConfig != null) {
78-
addInstance(userPoolConfig);
79-
addInstance<CognitoIdentityProviderClient>(
80-
WrappedCognitoIdentityProviderClient(
81-
region: userPoolConfig.region,
82-
credentialsProvider: _credentialsProvider,
83-
dependencyManager: this,
84-
endpoint: userPoolConfig.endpoint,
85-
),
86-
);
87-
}
74+
addInstance<CognitoIdentityProviderClient>(
75+
WrappedCognitoIdentityProviderClient(
76+
region: authOutputs.awsRegion,
77+
credentialsProvider: _credentialsProvider,
78+
dependencyManager: this,
79+
),
80+
);
8881

8982
// Configure HostedUI, if available
90-
final hostedUiConfig = config.hostedUiConfig;
91-
if (hostedUiConfig != null) {
92-
addInstance(hostedUiConfig);
83+
if (authOutputs.oauth != null) {
9384
waiters.add(manager.configureHostedUI());
9485
}
9586

96-
final identityPoolConfig = config.identityPoolConfig;
97-
if (identityPoolConfig != null) {
98-
addInstance(identityPoolConfig);
87+
if (authOutputs.identityPoolId != null) {
9988
addInstance<CognitoIdentityClient>(
10089
WrappedCognitoIdentityClient(
101-
region: identityPoolConfig.region,
90+
region: authOutputs.awsRegion,
10291
credentialsProvider: _credentialsProvider,
10392
dependencyManager: this,
10493
),
@@ -110,7 +99,7 @@ final class ConfigurationStateMachine
11099
await _waitForConfiguration(event.config, waiters);
111100

112101
// Setup AnalyticsMetadataType
113-
await _registerAnalyticsMetadata(config);
102+
await _registerAnalyticsMetadata(event.config.analytics);
114103
}
115104

116105
Future<void> _waitForConfiguration(
@@ -124,13 +113,9 @@ final class ConfigurationStateMachine
124113
/// State machine callback for the [ConfigureSucceeded] event.
125114
Future<void> onConfigureSucceeded(ConfigureSucceeded event) async {}
126115

127-
Future<void> _registerAnalyticsMetadata(AuthConfiguration config) async {
128-
final analyticsConfig = config.pinpointConfig;
129-
if (analyticsConfig == null) {
130-
return;
131-
}
132-
final appId = analyticsConfig.appId;
133-
116+
Future<void> _registerAnalyticsMetadata(AnalyticsOutputs? config) async {
117+
final appId = config?.amazonPinpoint?.appId;
118+
if (appId == null) return;
134119
final endpointStoreManager = getOrCreate<EndpointInfoStoreManager>();
135120
await endpointStoreManager.init(pinpointAppId: appId);
136121

packages/auth/amplify_auth_cognito_test/lib/common/mock_config.dart

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import 'dart:convert';
66
import 'package:amplify_auth_cognito_dart/amplify_auth_cognito_dart.dart';
77
import 'package:amplify_auth_cognito_dart/src/credentials/cognito_keys.dart';
88
import 'package:amplify_auth_cognito_dart/src/jwt/jwt.dart';
9-
import 'package:amplify_auth_cognito_dart/src/model/auth_configuration.dart';
109
import 'package:amplify_core/amplify_core.dart';
1110

1211
const amplifyConfig = '''{
@@ -131,9 +130,6 @@ final mockConfigWithPinpoint = AmplifyOutputs.fromJson(
131130
jsonDecode(amplifyConfigWithAnalytics) as Map<String, Object?>,
132131
);
133132

134-
final authConfig = AuthConfiguration.fromAmplifyOutputs(mockConfig);
135-
// TODO(nikahsn): remove after refactoring DeviceMetadataRepository
136-
final userPoolConfig = authConfig.userPoolConfig!;
137133
final userPoolKeys = CognitoUserPoolKeys(mockConfig.auth!.userPoolClientId!);
138134
final deviceKeys =
139135
CognitoDeviceKeys(mockConfig.auth!.userPoolClientId!, userSub);

packages/auth/amplify_auth_cognito_test/test/plugin/delete_user_test.dart

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import 'dart:async';
88
import 'package:amplify_auth_cognito_dart/amplify_auth_cognito_dart.dart'
99
hide InternalErrorException;
1010
import 'package:amplify_auth_cognito_dart/src/credentials/cognito_keys.dart';
11-
import 'package:amplify_auth_cognito_dart/src/model/auth_configuration.dart';
1211
import 'package:amplify_auth_cognito_dart/src/sdk/cognito_identity_provider.dart';
1312
import 'package:amplify_auth_cognito_dart/src/state/cognito_state_machine.dart';
1413
import 'package:amplify_auth_cognito_test/common/matchers.dart';
@@ -20,11 +19,9 @@ import 'package:amplify_secure_storage_dart/amplify_secure_storage_dart.dart';
2019
import 'package:test/test.dart';
2120

2221
void main() {
23-
final authConfig = AuthConfiguration.fromAmplifyOutputs(mockConfig);
24-
final userPoolConfig = authConfig.userPoolConfig!;
25-
final identityPoolConfig = authConfig.identityPoolConfig!;
26-
final userPoolKeys = CognitoUserPoolKeys(userPoolConfig.appClientId);
27-
final identityPoolKeys = CognitoIdentityPoolKeys(identityPoolConfig.poolId);
22+
final userPoolKeys = CognitoUserPoolKeys(mockConfig.auth!.userPoolClientId!);
23+
final identityPoolKeys =
24+
CognitoIdentityPoolKeys(mockConfig.auth!.identityPoolId!);
2825

2926
late AmplifyAuthCognitoDart plugin;
3027
late CognitoAuthStateMachine stateMachine;

packages/auth/amplify_auth_cognito_test/test/plugin/fetch_current_device_test.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import 'package:test/test.dart';
1414
void main() {
1515
AmplifyLogger().logLevel = LogLevel.verbose;
1616

17-
final userPoolKeys = CognitoUserPoolKeys(userPoolConfig.appClientId);
17+
final userPoolKeys = CognitoUserPoolKeys(mockConfig.auth!.userPoolClientId!);
1818
final identityPoolKeys =
1919
CognitoIdentityPoolKeys(mockConfig.auth!.identityPoolId!);
2020
final testAuthRepo = AmplifyAuthProviderRepository();
@@ -31,7 +31,8 @@ void main() {
3131
secureStorage,
3232
userPoolKeys: userPoolKeys,
3333
identityPoolKeys: identityPoolKeys,
34-
deviceKeys: CognitoDeviceKeys(userPoolConfig.appClientId, username),
34+
deviceKeys:
35+
CognitoDeviceKeys(mockConfig.auth!.userPoolClientId!, username),
3536
);
3637
plugin = AmplifyAuthCognitoDart(
3738
secureStorageFactory: (_) => secureStorage,

0 commit comments

Comments
 (0)