Skip to content

Commit ee26d74

Browse files
authored
chore(auth): device metadata repository to use AuthOutputs instead of CognitoUserPoolConfig (#5289)
1 parent 3f519a6 commit ee26d74

File tree

2 files changed

+22
-11
lines changed

2 files changed

+22
-11
lines changed

packages/auth/amplify_auth_cognito_dart/lib/src/credentials/device_metadata_repository.dart

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
22
// SPDX-License-Identifier: Apache-2.0
33

4+
import 'package:amplify_auth_cognito_dart/amplify_auth_cognito_dart.dart';
45
import 'package:amplify_auth_cognito_dart/src/credentials/cognito_keys.dart';
56
import 'package:amplify_auth_cognito_dart/src/model/cognito_device_secrets.dart';
67
import 'package:amplify_auth_cognito_dart/src/sdk/cognito_identity_provider.dart';
78
import 'package:amplify_core/amplify_core.dart';
9+
// ignore: implementation_imports
10+
import 'package:amplify_core/src/config/amplify_outputs/auth/auth_outputs.dart';
811
import 'package:amplify_secure_storage_dart/amplify_secure_storage_dart.dart';
912

1013
/// {@template amplify_auth_cognito_dart.credentials.device_metadata_repository}
@@ -13,26 +16,32 @@ import 'package:amplify_secure_storage_dart/amplify_secure_storage_dart.dart';
1316
class DeviceMetadataRepository {
1417
/// {@macro amplify_auth_cognito_dart.credentials.device_metadata_repository}
1518
const DeviceMetadataRepository(
16-
this._userPoolConfig,
19+
this._authOutputs,
1720
this._secureStorage,
1821
);
1922

2023
/// {@macro amplify_auth_cognito_dart.credentials.device_metadata_repository}
2124
factory DeviceMetadataRepository.fromDependencies(
2225
DependencyManager dependencies,
23-
) =>
24-
DeviceMetadataRepository(
25-
dependencies.expect(),
26-
dependencies.getOrCreate(),
27-
);
26+
) {
27+
final authOutputs = dependencies.expect<AuthOutputs>();
28+
if (authOutputs.userPoolClientId == null) {
29+
throw const InvalidAccountTypeException.noUserPool();
30+
}
31+
return DeviceMetadataRepository(
32+
authOutputs,
33+
dependencies.getOrCreate(),
34+
);
35+
}
2836

29-
final CognitoUserPoolConfig _userPoolConfig;
37+
final AuthOutputs _authOutputs;
3038
final SecureStorageInterface _secureStorage;
3139

3240
/// Retrieves the device secrets for [username].
3341
Future<CognitoDeviceSecrets?> get(String username) async {
3442
CognitoDeviceSecrets? deviceSecrets;
35-
final deviceKeys = CognitoDeviceKeys(_userPoolConfig.appClientId, username);
43+
final deviceKeys =
44+
CognitoDeviceKeys(_authOutputs.userPoolClientId!, username);
3645
final deviceKey = await _secureStorage.read(
3746
key: deviceKeys[CognitoDeviceKey.deviceKey],
3847
);
@@ -61,7 +70,8 @@ class DeviceMetadataRepository {
6170

6271
/// Save the [deviceSecrets] for [username].
6372
Future<void> put(String username, CognitoDeviceSecrets deviceSecrets) async {
64-
final deviceKeys = CognitoDeviceKeys(_userPoolConfig.appClientId, username);
73+
final deviceKeys =
74+
CognitoDeviceKeys(_authOutputs.userPoolClientId!, username);
6575
await _secureStorage.write(
6676
key: deviceKeys[CognitoDeviceKey.deviceKey],
6777
value: deviceSecrets.deviceKey,
@@ -82,7 +92,8 @@ class DeviceMetadataRepository {
8292

8393
/// Clears the device secrets for [username].
8494
Future<void> remove(String username) async {
85-
final deviceKeys = CognitoDeviceKeys(_userPoolConfig.appClientId, username);
95+
final deviceKeys =
96+
CognitoDeviceKeys(_authOutputs.userPoolClientId!, username);
8697
for (final key in deviceKeys) {
8798
await _secureStorage.delete(key: key);
8899
}

packages/auth/amplify_auth_cognito_test/test/state/sign_in_state_machine_test.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ void main() {
186186
),
187187
completion(isA<Configured>()),
188188
);
189-
deviceRepo = DeviceMetadataRepository(userPoolConfig, secureStorage);
189+
deviceRepo = DeviceMetadataRepository(mockConfig.auth!, secureStorage);
190190
stateMachine.addInstance<DeviceMetadataRepository>(deviceRepo);
191191
});
192192

0 commit comments

Comments
 (0)