Skip to content

Commit f3b92b9

Browse files
jvh-awsharsh62
andauthored
fix(auth): Use inputUsername for device metadata lookup in rememberDevice/forgetDevice and add e2e tests (#4209)
* fix(auth): Use inputUsername for device metadata lookup during token refresh * fix(auth): Use inputUsername for device metadata lookup during token refresh * chore(auth): Add token refresh integration tests for device tracking * chore(auth): Add alias-based token refresh integration tests for device tracking * chore(auth): Update test comments to clarify non-alias vs alias test coverage * fix(auth): Use inputUsername for device metadata lookup in rememberDevice/forgetDevice and add e2e tests (#4211) --------- Co-authored-by: Harsh <6162866+harsh62@users.noreply.github.com>
1 parent 2dded44 commit f3b92b9

5 files changed

Lines changed: 488 additions & 7 deletions

File tree

AmplifyPlugins/Auth/Sources/AWSCognitoAuthPlugin/Task/DeviceTasks/AWSAuthForgetDeviceTask.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ class AWSAuthForgetDeviceTask: AuthForgetDeviceTask, DefaultLogger {
5353
let authState = await authStateMachine.currentState
5454
if case .configured(let authenticationState, _, _) = authState,
5555
case .signedIn(let signInData) = authenticationState {
56-
return signInData.username
56+
return signInData.inputUsername ?? signInData.username
5757
}
5858
throw AuthError.unknown("Unable to get username for the signedIn user")
5959
}

AmplifyPlugins/Auth/Sources/AWSCognitoAuthPlugin/Task/DeviceTasks/AWSAuthRememberDeviceTask.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ class AWSAuthRememberDeviceTask: AuthRememberDeviceTask, DefaultLogger {
5252
let authState = await authStateMachine.currentState
5353
if case .configured(let authenticationState, _, _) = authState,
5454
case .signedIn(let signInData) = authenticationState {
55-
return signInData.username
55+
return signInData.inputUsername ?? signInData.username
5656
}
5757
throw AuthError.unknown("Unable to get username for the signedIn user")
5858
}

AmplifyPlugins/Auth/Tests/AuthHostApp/AuthHostApp.xcodeproj/project.pbxproj

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
21F762B82BD6B1AA0048845A /* TOTPSetupWhenAuthenticatedTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48916F372A412B2800E3E1B1 /* TOTPSetupWhenAuthenticatedTests.swift */; };
3131
21F762B92BD6B1AA0048845A /* CredentialStoreConfigurationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 484834BB27B6ED8700649D11 /* CredentialStoreConfigurationTests.swift */; };
3232
21F762BA2BD6B1AA0048845A /* AuthRememberDeviceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9737C74D287E208400DA0D2B /* AuthRememberDeviceTests.swift */; };
33-
E9B56799769C60EAA3B3F1B7 /* DeviceKeyPersistenceIntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DF106AB62BCE2F9D62D3CB0 /* DeviceKeyPersistenceIntegrationTests.swift */; };
3433
21F762BB2BD6B1AA0048845A /* XCTestCase+AsyncTesting.swift in Sources */ = {isa = PBXBuildFile; fileRef = 681DFEAA28E747B80000C36A /* XCTestCase+AsyncTesting.swift */; };
3534
21F762BC2BD6B1AA0048845A /* AuthResendSignUpCodeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B43C26C927BC9D54003F3BF7 /* AuthResendSignUpCodeTests.swift */; };
3635
21F762BD2BD6B1AA0048845A /* AuthResetPasswordTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97829200286B802E000DE190 /* AuthResetPasswordTests.swift */; };
@@ -41,6 +40,7 @@
4140
21F762C22BD6B1AA0048845A /* AuthConfirmResetPasswordTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97829202286E41FA000DE190 /* AuthConfirmResetPasswordTests.swift */; };
4241
21F762C32BD6B1AA0048845A /* AuthDeleteUserTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4821B2F1286B5F74000EC1D7 /* AuthDeleteUserTests.swift */; };
4342
21F762C62BD6B1AA0048845A /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = 485CB5AE27B61EAA006CCEC7 /* README.md */; };
43+
3ECC1FC593B6E582A1A88856 /* DeviceKeyPersistenceIntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DF106AB62BCE2F9D62D3CB0 /* DeviceKeyPersistenceIntegrationTests.swift */; };
4444
4821B2F2286B5F74000EC1D7 /* AuthDeleteUserTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4821B2F1286B5F74000EC1D7 /* AuthDeleteUserTests.swift */; };
4545
4821B2F428737130000EC1D7 /* AuthCustomSignInTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4821B2F328737130000EC1D7 /* AuthCustomSignInTests.swift */; };
4646
4834D7C128B0770800DD564B /* FederatedSessionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4834D7C028B0770800DD564B /* FederatedSessionTests.swift */; };
@@ -88,6 +88,7 @@
8888
48DEF59B2CDB1FF500BDB995 /* PasswordlessSignInTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48DEF5992CDB1FF500BDB995 /* PasswordlessSignInTests.swift */; };
8989
48DEF59C2CDB1FF500BDB995 /* PasswordlessSignInTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48DEF5992CDB1FF500BDB995 /* PasswordlessSignInTests.swift */; };
9090
48E3AB3128E52590004EE395 /* GetCurrentUserTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48E3AB3028E52590004EE395 /* GetCurrentUserTests.swift */; };
91+
4BF81384CA84205BCBC3A1DE /* DeviceKeyPersistenceIntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DF106AB62BCE2F9D62D3CB0 /* DeviceKeyPersistenceIntegrationTests.swift */; };
9192
681B76952A3CB8DA004B59D9 /* AuthHostAppApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 485CB53D27B614CE006CCEC7 /* AuthHostAppApp.swift */; };
9293
681B76962A3CB8DD004B59D9 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 485CB53F27B614CE006CCEC7 /* ContentView.swift */; };
9394
681B769A2A3CBA97004B59D9 /* Amplify in Frameworks */ = {isa = PBXBuildFile; productRef = 681B76992A3CBA97004B59D9 /* Amplify */; };
@@ -110,7 +111,6 @@
110111
681B76B22A3CBBAE004B59D9 /* AuthEnvironmentHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 484834BD27B6FD9B00649D11 /* AuthEnvironmentHelper.swift */; };
111112
681B76B32A3CBBAE004B59D9 /* CredentialStoreConfigurationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 484834BB27B6ED8700649D11 /* CredentialStoreConfigurationTests.swift */; };
112113
681B76B42A3CBBAE004B59D9 /* AuthRememberDeviceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9737C74D287E208400DA0D2B /* AuthRememberDeviceTests.swift */; };
113-
4BF81384CA84205BCBC3A1DE /* DeviceKeyPersistenceIntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DF106AB62BCE2F9D62D3CB0 /* DeviceKeyPersistenceIntegrationTests.swift */; };
114114
681B76B52A3CBBAE004B59D9 /* XCTestCase+AsyncTesting.swift in Sources */ = {isa = PBXBuildFile; fileRef = 681DFEAA28E747B80000C36A /* XCTestCase+AsyncTesting.swift */; };
115115
681B76B62A3CBBAE004B59D9 /* AuthResendSignUpCodeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B43C26C927BC9D54003F3BF7 /* AuthResendSignUpCodeTests.swift */; };
116116
681B76B72A3CBBAE004B59D9 /* AuthResetPasswordTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97829200286B802E000DE190 /* AuthResetPasswordTests.swift */; };
@@ -125,7 +125,6 @@
125125
681DFEAD28E747B80000C36A /* XCTestCase+AsyncTesting.swift in Sources */ = {isa = PBXBuildFile; fileRef = 681DFEAA28E747B80000C36A /* XCTestCase+AsyncTesting.swift */; };
126126
970333F0295D793B0019981E /* AuthStressBaseTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 970333EF295D793B0019981E /* AuthStressBaseTest.swift */; };
127127
9737C74E287E208400DA0D2B /* AuthRememberDeviceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9737C74D287E208400DA0D2B /* AuthRememberDeviceTests.swift */; };
128-
3ECC1FC593B6E582A1A88856 /* DeviceKeyPersistenceIntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DF106AB62BCE2F9D62D3CB0 /* DeviceKeyPersistenceIntegrationTests.swift */; };
129128
9737C7502880BFD600DA0D2B /* AuthForgetDeviceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9737C74F2880BFD600DA0D2B /* AuthForgetDeviceTests.swift */; };
130129
97829201286B802E000DE190 /* AuthResetPasswordTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97829200286B802E000DE190 /* AuthResetPasswordTests.swift */; };
131130
97829203286E41FA000DE190 /* AuthConfirmResetPasswordTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97829202286E41FA000DE190 /* AuthConfirmResetPasswordTests.swift */; };
@@ -145,6 +144,8 @@
145144
B43C26CC27BC9D54003F3BF7 /* AuthResendSignUpCodeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B43C26C927BC9D54003F3BF7 /* AuthResendSignUpCodeTests.swift */; };
146145
B4B9F45828F47C0A004F346F /* Amplify in Frameworks */ = {isa = PBXBuildFile; productRef = B4B9F45728F47C0A004F346F /* Amplify */; };
147146
B4B9F45A28F47C0A004F346F /* AWSCognitoAuthPlugin in Frameworks */ = {isa = PBXBuildFile; productRef = B4B9F45928F47C0A004F346F /* AWSCognitoAuthPlugin */; };
147+
E9B56799769C60EAA3B3F1B7 /* DeviceKeyPersistenceIntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DF106AB62BCE2F9D62D3CB0 /* DeviceKeyPersistenceIntegrationTests.swift */; };
148+
EA3EEAF12FAA492B0011EF4D /* DeviceAliasTokenRefreshIntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA3EEAF02FAA492B0011EF4D /* DeviceAliasTokenRefreshIntegrationTests.swift */; };
148149
/* End PBXBuildFile section */
149150

150151
/* Begin PBXContainerItemProxy section */
@@ -193,6 +194,7 @@
193194
/* End PBXContainerItemProxy section */
194195

195196
/* Begin PBXFileReference section */
197+
0DF106AB62BCE2F9D62D3CB0 /* DeviceKeyPersistenceIntegrationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceKeyPersistenceIntegrationTests.swift; sourceTree = "<group>"; };
196198
21CFD7C52C7524570071C70F /* AppSyncSignerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppSyncSignerTests.swift; sourceTree = "<group>"; };
197199
21F762CB2BD6B1AA0048845A /* AuthGen2IntegrationTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AuthGen2IntegrationTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
198200
21F762CC2BD6B1CD0048845A /* AuthGen2IntegrationTests.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = AuthGen2IntegrationTests.xctestplan; sourceTree = "<group>"; };
@@ -231,10 +233,8 @@
231233
681DFEA828E747B80000C36A /* AsyncTesting.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AsyncTesting.swift; sourceTree = "<group>"; };
232234
681DFEA928E747B80000C36A /* AsyncExpectation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AsyncExpectation.swift; sourceTree = "<group>"; };
233235
681DFEAA28E747B80000C36A /* XCTestCase+AsyncTesting.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "XCTestCase+AsyncTesting.swift"; sourceTree = "<group>"; };
234-
907EA7602A4B6F56005E3AA8 /* AuthHostApp.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = AuthHostApp.entitlements; sourceTree = "<group>"; };
235236
970333EF295D793B0019981E /* AuthStressBaseTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthStressBaseTest.swift; sourceTree = "<group>"; };
236237
9737C74D287E208400DA0D2B /* AuthRememberDeviceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthRememberDeviceTests.swift; sourceTree = "<group>"; };
237-
0DF106AB62BCE2F9D62D3CB0 /* DeviceKeyPersistenceIntegrationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceKeyPersistenceIntegrationTests.swift; sourceTree = "<group>"; };
238238
9737C74F2880BFD600DA0D2B /* AuthForgetDeviceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthForgetDeviceTests.swift; sourceTree = "<group>"; };
239239
97829200286B802E000DE190 /* AuthResetPasswordTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthResetPasswordTests.swift; sourceTree = "<group>"; };
240240
97829202286E41FA000DE190 /* AuthConfirmResetPasswordTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthConfirmResetPasswordTests.swift; sourceTree = "<group>"; };
@@ -251,6 +251,7 @@
251251
B4B9F45628F47B7B004F346F /* amplify-ios */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = "amplify-ios"; path = ../../../..; sourceTree = "<group>"; };
252252
E2A7D1732C5D76CB00B06999 /* AuthHostApp.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = AuthHostApp.entitlements; sourceTree = "<group>"; };
253253
E2A7D1742C5D774200B06999 /* AuthWatchApp.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = AuthWatchApp.entitlements; sourceTree = "<group>"; };
254+
EA3EEAF02FAA492B0011EF4D /* DeviceAliasTokenRefreshIntegrationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceAliasTokenRefreshIntegrationTests.swift; sourceTree = "<group>"; };
254255
/* End PBXFileReference section */
255256

256257
/* Begin PBXFrameworksBuildPhase section */
@@ -535,6 +536,7 @@
535536
97B370C32878DA3500F1C088 /* DeviceTests */ = {
536537
isa = PBXGroup;
537538
children = (
539+
EA3EEAF02FAA492B0011EF4D /* DeviceAliasTokenRefreshIntegrationTests.swift */,
538540
97B370C42878DA5A00F1C088 /* AuthFetchDeviceTests.swift */,
539541
9737C74D287E208400DA0D2B /* AuthRememberDeviceTests.swift */,
540542
9737C74F2880BFD600DA0D2B /* AuthForgetDeviceTests.swift */,
@@ -878,6 +880,7 @@
878880
21F762AC2BD6B1AA0048845A /* AuthFetchDeviceTests.swift in Sources */,
879881
21F762AD2BD6B1AA0048845A /* TOTPSetupWhenUnauthenticatedTests.swift in Sources */,
880882
21F762AE2BD6B1AA0048845A /* AsyncExpectation.swift in Sources */,
883+
EA3EEAF12FAA492B0011EF4D /* DeviceAliasTokenRefreshIntegrationTests.swift in Sources */,
881884
21F762AF2BD6B1AA0048845A /* GetCurrentUserTests.swift in Sources */,
882885
21F762B02BD6B1AA0048845A /* TOTPHelper.swift in Sources */,
883886
21F762B12BD6B1AA0048845A /* AWSAuthBaseTest.swift in Sources */,

0 commit comments

Comments
 (0)