-
Notifications
You must be signed in to change notification settings - Fork 222
Closed
Labels
authIssues related to the Auth categoryIssues related to the Auth categoryquestionGeneral questionGeneral question
Description
Describe the bug
I successfully implemented SignIn with username/pass and SignIn with Google, and now I have a problem with SignOut. I want to use "local sign out" and if read the documentation, this is the default behavior of Amplify.Auth.signOut()
. However, when I do use that, I get a popup with a very confusing message (wants to "Sign In").
Sign out actually completed successfully, however, I didn't expect to see that popup.

Steps To Reproduce
1. Prepare AWS Cognito with Google as social login (I did it via Terraform)
{
"version": "1",
"auth": {
"aws_region": "eu-central-1",
"user_pool_id": "eu-central-1_******",
"user_pool_client_id": "******",
"username_attributes": ["email"],
"standard_required_attributes": ["email"],
"user_verification_types": ["email"],
"unauthenticated_identities_enabled": false,
"password_policy": {
"min_length": 8,
"require_lowercase": true,
"require_uppercase": true,
"require_numbers": true,
"require_symbols": true
},
"oauth": {
"identity_providers": ["GOOGLE", "FACEBOOK"],
"domain": "auth.staging.getsend.app",
"scopes": ["openid", "email", "profile"],
"redirect_sign_in_uri": [
"Send://callback"
],
"redirect_sign_out_uri": [
"Send://signout"
],
"response_type": "code"
}
}
}
2. Implement "signInWithGoogle"
func signInWithGoogle() async throws {
do {
let signInResult = try await Amplify.Auth.signInWithWebUI(for: .google)
if signInResult.isSignedIn {
print("Google sign in successful")
} else {
print("Google sign in failed")
}
} catch let error as AuthError {
print("An error occurred during Google sign in: \(error)")
throw error
} catch {
print("An unexpected error occurred during Google sign in: \(error)")
throw AuthError.unknown("An unexpected error occurred during Google sign in", error)
}
}
3. Implement signOutLocally
@MainActor
func signOutLocally() async throws {
# Tried this also but it's the same `Amplify.Auth.signOut()`
let options = AuthSignOutRequest.Options(globalSignOut: false)
let result = await Amplify.Auth.signOut(options: options)
guard let signOutResult = result as? AWSCognitoSignOutResult
else {
throw AuthError.service("Sign out failed", "")
}
print("Local signout successful: \(signOutResult.signedOutLocally)")
}
4. Configure app Info.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>Send</string>
</array>
</dict>
</array>
</dict>
</plist>
5. Call the functions from a View/ViewModel
@MainActor
func login() {
Task {
guard validate() else { return }
isAuthenticating = true
do {
let signInResult = try await authService.signIn(username: email, password: password)
//....
} catch {
print("Login failed: \(error)")
errorMessage = "Login failed: \(error.localizedDescription)"
}
isAuthenticating = false
}
}
func signOut() {
Task {
do {
try await authService.signOutLocally()
print("User signed out successfully.")
//...
} catch {
print("Error signing out: \(error)")
}
}
}
6. Start the app. Click login (should work)
7. Click Logout
8. Popup appears (like in screenshot)
9. User gets loged out
Expected behavior
Sign out and NO popup on the screen.
Amplify Framework Version
2.46.2
Amplify Categories
Auth
Dependency manager
Swift PM
Swift version
6.0.3
CLI version
n/a
Xcode version
16.2
Relevant log output
Two parts from my iOS app. One related to app start and one to logout.
Part 1
Adding plugin: AWSCognitoAuthPlugin.AWSCognitoAuthPlugin)
Credential Store state change:
{
"CredentialStoreState.notConfigured" = {
};
}
Auth state change:
{
"AuthState.notConfigured" = {
};
}
Auth state change:
{
"AuthState.configuringAuth" = {
};
}
AWSCognitoAuthPlugin/InitializeAuthConfiguration.swift Starting execution
Credential Store state change:
{
"CredentialStoreState.migratingLegacyStore" = {
};
}
AWSCognitoAuthPlugin/MigrateLegacyCredentialStore.swift Starting execution
[KeychainStore] Initialized keychain with service=com.amplify.awsCognitoAuthPlugin, attributes=KeychainStoreAttributes(itemClass: "genp", service: "com.amplify.awsCognitoAuthPlugin", accessGroup: nil), accessGroup=No access group specified
[KeychainStore] Started retrieving `Data` from the store with key=authConfiguration
[KeychainStore] Successfully retrieved `Data` from the store with key=authConfiguration
[KeychainStore] Started setting `Data` for key=authConfiguration
[KeychainStore] Initialized fetching to decide whether update or add
[KeychainStore] Found existing item, updating
[KeychainStore] Successfully updated `Data` in keychain for key=authConfiguration
[KeychainStore] Initialized keychain with service=app.getsend.Send.AWSCognitoIdentityUserPool, attributes=KeychainStoreAttributes(itemClass: "genp", service: "app.getsend.Send.AWSCognitoIdentityUserPool", accessGroup: nil), accessGroup=No access group specified
[KeychainStore] Started retrieving `String` from the store with key=*****.currentUser
Error creating the CFMessagePort needed to communicate with PPT.
[KeychainStore] Started retrieving `Data` from the store with key=*****.currentUser
[KeychainStore] No Keychain item found for key=*****.currentUser
[KeychainStore] Initialized keychain with service=app.getsend.Send.AWSCognitoIdentityUserPool, attributes=KeychainStoreAttributes(itemClass: "genp", service: "app.getsend.Send.AWSCognitoIdentityUserPool", accessGroup: nil), accessGroup=No access group specified
[KeychainStore] Started retrieving `String` from the store with key=*****.currentUser
[KeychainStore] Started retrieving `Data` from the store with key=*****.currentUser
[KeychainStore] No Keychain item found for key=*****.currentUser
[KeychainStore] Starting to remove all items from keychain
[KeychainStore] Successfully removed all items from keychain
[KeychainStore] Initialized keychain with service=Optional("app.getsend.Send").AWSMobileClient, attributes=KeychainStoreAttributes(itemClass: "genp", service: "Optional(\"app.getsend.Send\").AWSMobileClient", accessGroup: nil), accessGroup=No access group specified
[KeychainStore] Started retrieving `Data` from the store with key=loginsMap
[KeychainStore] No Keychain item found for key=loginsMap
[KeychainStore] Initialized keychain with service=Optional("app.getsend.Send").AWSMobileClient, attributes=KeychainStoreAttributes(itemClass: "genp", service: "Optional(\"app.getsend.Send\").AWSMobileClient", accessGroup: nil), accessGroup=No access group specified
[KeychainStore] Started retrieving `String` from the store with key=federationProvider
[KeychainStore] Started retrieving `Data` from the store with key=federationProvider
[KeychainStore] No Keychain item found for key=federationProvider
[KeychainStore] Starting to remove all items from keychain
[KeychainStore] Successfully removed all items from keychain
AWSCognitoAuthPlugin/MigrateLegacyCredentialStore.swift Sending event CredentialStoreEvent.loadCredentialStore
AWSCognitoAuthPlugin/LoadCredentialStore.swift Starting execution
Credential Store state change:
{
"CredentialStoreState.loadingStoredCredentials" = {
};
}
AWSCognitoAuthPlugin/LoadCredentialStore.swift Retreiving credential amplifyCredentials
[KeychainStore] Initialized keychain with service=com.amplify.awsCognitoAuthPlugin, attributes=KeychainStoreAttributes(itemClass: "genp", service: "com.amplify.awsCognitoAuthPlugin", accessGroup: nil), accessGroup=No access group specified
[KeychainStore] Started retrieving `Data` from the store with key=authConfiguration
[KeychainStore] Successfully retrieved `Data` from the store with key=authConfiguration
[KeychainStore] Started setting `Data` for key=authConfiguration
[KeychainStore] Initialized fetching to decide whether update or add
[KeychainStore] Found existing item, updating
[KeychainStore] Successfully updated `Data` in keychain for key=authConfiguration
[KeychainStore] Started retrieving `Data` from the store with key=amplify.eu-central-*******.session
[KeychainStore] No Keychain item found for key=amplify.eu-central-*******.session
AWSCognitoAuthPlugin/LoadCredentialStore.swift Sending event CredentialStoreEvent.throwError
AWSCognitoAuthPlugin/IdleCredentialStore.swift Starting execution
AWSCognitoAuthPlugin/IdleCredentialStore.swift Sending event CredentialStoreEvent.moveToIdleState
No existing session found.
AWSCognitoAuthPlugin/InitializeAuthConfiguration.swift Sending event AuthEvent.validateCredentialAndConfiguration
AWSCognitoAuthPlugin/ValidateCredentialsAndConfiguration.swift Starting execution
AWSCognitoAuthPlugin/ValidateCredentialsAndConfiguration.swift Sending event AuthEvent.configureAuthentication
Auth state change:
{
"AuthState.validatingCredentialsAndConfiguration" = {
};
}
Auth state change:
{
"AuthState.configuringAuthentication" = {
"AuthenticationState.notConfigured" = {
};
};
}
AWSCognitoAuthPlugin/InitializeAuthenticationConfiguration.swift Starting execution
AWSCognitoAuthPlugin/InitializeAuthenticationConfiguration.swift Sending event AuthenticationEvent.configure
Credential Store state change:
{
"CredentialStoreState.error" = {
errorType = "KeychainStoreError: Unable to find the keychain item";
};
}
Credential Store state change:
{
"CredentialStoreState.idle" = {
};
}
AWSCognitoAuthPlugin/ConfigureAuthentication.swift Start execution
Auth state change:
{
"AuthState.configuringAuthentication" = {
"AuthenticationState.configured" = {
};
};
}
AWSCognitoAuthPlugin/ConfigureAuthentication.swift Sending event AuthenticationEvent.initializedSignedOut
AWSCognitoAuthPlugin/ConfigureAuthentication.swift Sending event AuthEvent.authenticationConfigured
Auth state change:
{
"AuthState.configuringAuthentication" = {
"AuthenticationState.signedOut" = {
lastKnownUserName = "(nil)";
};
};
}
AWSCognitoAuthPlugin/InitializeAuthorizationConfiguration.swift Starting execution
Auth state change:
{
"AuthState.configuringAuthorization" = {
"AuthenticationState.signedOut" = {
lastKnownUserName = "(nil)";
};
"AuthorizationState.notConfigured" = {
};
};
}
AWSCognitoAuthPlugin/InitializeAuthorizationConfiguration.swift Sending event AuthorizationEvent.configure
AWSCognitoAuthPlugin/ConfigureAuthorization.swift Starting execution
AWSCognitoAuthPlugin/ConfigureAuthorization.swift Sending event AuthEvent.authorizationConfigured
Auth state change:
{
"AuthState.configuringAuthorization" = {
"AuthenticationState.signedOut" = {
lastKnownUserName = "(nil)";
};
"AuthorizationState.configured" = {
};
};
}
Auth state change:
{
"AuthState.configured" = {
"AuthenticationState.signedOut" = {
lastKnownUserName = "(nil)";
};
"AuthorizationState.configured" = {
};
"SignUpState.notStarted" = {
};
};
}
Starting execution for Auth.fetchSessionAPI
Starting execution
Check if authstate configured
Auth state configured
Fetching current state
No session found, fetching unauth session
Waiting for session to establish
Auth state change:
{
"AuthState.configured" = {
"AuthenticationState.signedOut" = {
lastKnownUserName = "(nil)";
};
"AuthorizationState.fetchingUnAuthSession" = {
"FetchSessionState.notStarted" = {
};
};
"SignUpState.notStarted" = {
};
};
}
AWSCognitoAuthPlugin/InitializeFetchUnAuthSession.swift Starting execution
AWSCognitoAuthPlugin/InitializeFetchUnAuthSession.swift Sending event FetchAuthSessionEvent.throwError
AWSCognitoAuthPlugin/InformSessionError.swift Starting execution
AWSCognitoAuthPlugin/InformSessionError.swift Sending event AuthorizationEvent.receivedSessionError
Auth state change:
{
"AuthState.configured" = {
"AuthenticationState.signedOut" = {
lastKnownUserName = "(nil)";
};
"AuthorizationState.fetchingUnAuthSession" = {
"FetchSessionState.error" = {
error = "AWSCognitoAuthPlugin.FetchSessionError.noIdentityPool";
};
};
"SignUpState.notStarted" = {
};
};
}
Received fetch auth session error - sessionError(AWSCognitoAuthPlugin.FetchSessionError.noIdentityPool, noCredentials)
Auth state change:
{
"AuthState.configured" = {
"AuthenticationState.signedOut" = {
lastKnownUserName = "(nil)";
};
"AuthorizationState.error" = {
Error = "AWSCognitoAuthPlugin.AuthorizationError.sessionError(AWSCognitoAuthPlugin.FetchSessionError.noIdentityPool, noCredentials)";
};
"SignUpState.notStarted" = {
};
};
}
Successfully completed execution for Auth.fetchSessionAPI with result:
{
awsCredentialsError = "AuthError: No identity pool configuration found\nRecovery suggestion: Make sure that the amplify configuration passed to Auth plugin is valid";
cognitoTokensError = "AuthError: No identity pool configuration found\nRecovery suggestion: Make sure that the amplify configuration passed to Auth plugin is valid";
identityIdError = "AuthError: No identity pool configuration found\nRecovery suggestion: Make sure that the amplify configuration passed to Auth plugin is valid";
isSignedIn = false;
userSubError = "AuthError: No identity pool configuration found\nRecovery suggestion: Make sure that the amplify configuration passed to Auth plugin is valid";
}
Is user signed in: false
Starting execution for Auth.socialWebUISignInAPI
Check if authstate configured
Auth state configured
Wait for a valid state
Start signIn flow
Wait for signIn to complete
AWSCognitoAuthPlugin/IntializeSignInFlow.swift Starting execution
Auth state change:
{
"AuthState.configured" = {
"AuthenticationState.signingIn" = {
"SignInState.notStarted" = {
};
};
"AuthorizationState.configured" = {
};
"SignUpState.notStarted" = {
};
};
}
AWSCognitoAuthPlugin/IntializeSignInFlow.swift Sending event SignInEvent.initiateHostedUISignIn
AWSCognitoAuthPlugin/InitializeHostedUISignIn.swift Starting execution
Auth state change:
{
"AuthState.configured" = {
"AuthenticationState.signingIn" = {
"SignInState.signingInWithHostedUI" = {
"HostedUISignInState.notStarted" = {
};
};
};
"AuthorizationState.configured" = {
};
"SignUpState.notStarted" = {
};
};
}
AWSCognitoAuthPlugin/LoadCredentialStore.swift Starting execution
Credential Store state change:
{
"CredentialStoreState.loadingStoredCredentials" = {
};
}
Checking next step for: notStarted
AWSCognitoAuthPlugin/LoadCredentialStore.swift Retreiving credential deviceMetadata(username: "unknown")
[KeychainStore] Initialized keychain with service=com.amplify.awsCognitoAuthPlugin, attributes=KeychainStoreAttributes(itemClass: "genp", service: "com.amplify.awsCognitoAuthPlugin", accessGroup: nil), accessGroup=No access group specified
[KeychainStore] Started retrieving `Data` from the store with key=authConfiguration
Checking next step for: signingInWithHostedUI(AWSCognitoAuthPlugin.HostedUISignInState.notStarted)
[KeychainStore] Successfully retrieved `Data` from the store with key=authConfiguration
[KeychainStore] Started setting `Data` for key=authConfiguration
[KeychainStore] Initialized fetching to decide whether update or add
[KeychainStore] Found existing item, updating
[KeychainStore] Successfully updated `Data` in keychain for key=authConfiguration
[KeychainStore] Started retrieving `Data` from the store with key=amplify.eu-central-*******.unknown.deviceMetadata
[KeychainStore] No Keychain item found for key=amplify.eu-central-*******.unknown.deviceMetadata
AWSCognitoAuthPlugin/LoadCredentialStore.swift Sending event CredentialStoreEvent.throwError
AWSCognitoAuthPlugin/IdleCredentialStore.swift Starting execution
AWSCognitoAuthPlugin/IdleCredentialStore.swift Sending event CredentialStoreEvent.moveToIdleState
Credential Store state change:
{
"CredentialStoreState.error" = {
errorType = "KeychainStoreError: Unable to find the keychain item";
};
}
Credential Store state change:
{
"CredentialStoreState.idle" = {
};
}
AWSCognitoAuthPlugin/LoadCredentialStore.swift Starting execution
Credential Store state change:
{
"CredentialStoreState.loadingStoredCredentials" = {
};
}
AWSCognitoAuthPlugin/LoadCredentialStore.swift Retreiving credential asfDeviceId(username: "unknown")
[KeychainStore] Initialized keychain with service=com.amplify.awsCognitoAuthPlugin, attributes=KeychainStoreAttributes(itemClass: "genp", service: "com.amplify.awsCognitoAuthPlugin", accessGroup: nil), accessGroup=No access group specified
[KeychainStore] Started retrieving `Data` from the store with key=authConfiguration
[KeychainStore] Successfully retrieved `Data` from the store with key=authConfiguration
[KeychainStore] Started setting `Data` for key=authConfiguration
[KeychainStore] Initialized fetching to decide whether update or add
[KeychainStore] Found existing item, updating
[KeychainStore] Successfully updated `Data` in keychain for key=authConfiguration
[KeychainStore] Started retrieving `Data` from the store with key=amplify.eu-central-*******.unknown.deviceASF
[KeychainStore] Successfully retrieved `Data` from the store with key=amplify.eu-central-*******.unknown.deviceASF
AWSCognitoAuthPlugin/LoadCredentialStore.swift Sending event CredentialStoreEvent.completedOperation
AWSCognitoAuthPlugin/IdleCredentialStore.swift Starting execution
AWSCognitoAuthPlugin/IdleCredentialStore.swift Sending event CredentialStoreEvent.moveToIdleState
Credential Store state change:
{
"CredentialStoreState.success" = {
savedData = "AWSCognitoAuthPlugin.CredentialStoreData.asfDeviceId(\"FDB86EAB-B504-463C-B41D-17929F6CE244\", \"unknown\")";
};
}
Credential Store state change:
{
"CredentialStoreState.idle" = {
};
}
AWSCognitoAuthPlugin/InitializeHostedUISignIn.swift Sending event HostedUIEvent.showHostedUI
AWSCognitoAuthPlugin/ShowHostedUISignIn.swift Starting execution
Auth state change:
{
"AuthState.configured" = {
"AuthenticationState.signingIn" = {
"SignInState.signingInWithHostedUI" = {
"HostedUISignInState.showingUI" = {
};
};
};
"AuthorizationState.configured" = {
};
"SignUpState.notStarted" = {
};
};
}
AWSCognitoAuthPlugin/ShowHostedUISignIn.swift Showing url https://auth.staging.getsend.app/oauth2/authorize?response_type=code&code_challenge_method=S256&client_id=*****&state=7d23c04e-456f-42b2-8790-0f5d2cc3eacd&redirect_uri=Send://callback&scope=email%20openid%20profile&code_challenge=HcgAh8rRmC1TAhlsLDmDFwBmtXVqJMDYYMYiI8fsTj4&userContextData=eyJ2ZXJzaW9uIjoiSU9TMjAxNzExMTQiLCJzaWduYXR1cmUiOiJZMDJjUFlBeTBOenN5cnNkWG1TUjMwb2xhcmxOaDdoMFpVY3pMTGhjWFRZPSIsInBheWxvYWQiOiJ7XCJ1c2VyUG9vbElkXCI6XCJldS1jZW50cmFsLTFfMXA0MWtROTdaXCIsXCJ0aW1lc3RhbXBcIjpcIjQ3ODk5NzA0OTQyNTk5MzcyODBcIixcInVzZXJuYW1lXCI6XCJ1bmtub3duXCIsXCJjb250ZXh0RGF0YVwiOntcIlBsYXRmb3JtXCI6XCJpT1NcIixcIkRldmljZUxhbmd1YWdlXCI6XCJlbi1VU1wiLFwiQXBwbGljYXRpb25UYXJnZXRTZGtcIjpcIjEzMDAwMFwiLFwiRGV2aWNlSWRcIjpcIkZEQjg2RUFCLUI1MDQtNDYzQy1CNDFELTE3OTI5RjZDRTI0NFwiLFwiU2NyZWVuV2lkdGhQaXhlbHNcIjpcIjEyOTBcIixcIkJ1aWxkVHlwZVwiOlwiZGVidWdcIixcIkNsaWVudFRpbWV6b25lXCI6XCIrMDI6MDBcIixcIkFwcGxpY2F0aW9uTmFtZVwiOlwiYXBwLmdldHNlbmQuU2VuZFwiLFwiQXBwbGljYXRpb25WZXJzaW9uXCI6XCIxLjAtMVwiLFwiU2NyZWVuSGVpZ2h0UGl4ZWxzXCI6XCIyNzk2XCIsXCJEZXZpY2VOYW1lXCI6XCJpUGhvbmUgMTYgUGx1c1wiLFwiRGV2aWNlRmluZ2VycHJpbnRcIjpcIkFwcGxlXFxcL2lQaG9uZVxcXC9hcm02NFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFxcLy06MTguMlxcXC8tXFxcLy06LVxcXC9kZWJ1Z1wiLFwiUGhvbmVUeXBlXCI6XCJhcm02NFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXCIsXCJEZXZpY2VPc1JlbGVhc2VWZXJzaW9uXCI6XCIxOC4yXCIsXCJUaGlyZFBhcnR5RGV2aWNlSWRcIjpcIjVFRDA3MzA4LTQxMzEtNEMwRS05QUM4LUM5NTc0ODQyNzM3RFwifX0ifQ%3D%3D&identity_provider=Google
Checking next step for: signingInWithHostedUI(AWSCognitoAuthPlugin.HostedUISignInState.showingUI(AWSCognitoAuthPlugin.HostedUISigningInState(signInURL: https://auth.staging.getsend.app/oauth2/authorize?response_type=code&code_challenge_method=S256&client_id=*****&state=7d23c04e-456f-42b2-8790-0f5d2cc3eacd&redirect_uri=Send://callback&scope=email%20openid%20profile&code_challenge=HcgAh8rRmC1TAhlsLDmDFwBmtXVqJMDYYMYiI8fsTj4&userContextData=eyJ2ZXJzaW9uIjoiSU9TMjAxNzExMTQiLCJzaWduYXR1cmUiOiJZMDJjUFlBeTBOenN5cnNkWG1TUjMwb2xhcmxOaDdoMFpVY3pMTGhjWFRZPSIsInBheWxvYWQiOiJ7XCJ1c2VyUG9vbElkXCI6XCJldS1jZW50cmFsLTFfMXA0MWtROTdaXCIsXCJ0aW1lc3RhbXBcIjpcIjQ3ODk5NzA0OTQyNTk5MzcyODBcIixcInVzZXJuYW1lXCI6XCJ1bmtub3duXCIsXCJjb250ZXh0RGF0YVwiOntcIlBsYXRmb3JtXCI6XCJpT1NcIixcIkRldmljZUxhbmd1YWdlXCI6XCJlbi1VU1wiLFwiQXBwbGljYXRpb25UYXJnZXRTZGtcIjpcIjEzMDAwMFwiLFwiRGV2aWNlSWRcIjpcIkZEQjg2RUFCLUI1MDQtNDYzQy1CNDFELTE3OTI5RjZDRTI0NFwiLFwiU2NyZWVuV2lkdGhQaXhlbHNcIjpcIjEyOTBcIixcIkJ1aWxkVHlwZVwiOlwiZGVidWdcIixcIkNsaWVudFRpbWV6b25lXCI6XCIrMDI6MDBcIixcIkFwcGxpY2F0aW9uTmFtZVwiOlwiYXBwLmdldHNlbmQuU2VuZFwiLFwiQXBwbGljYXRpb25WZXJzaW9uXCI6XCIxLjAtMVwiLFwiU2NyZWVuSGVpZ2h0UGl4ZWxzXCI6XCIyNzk2XCIsXCJEZXZpY2VOYW1lXCI6XCJpUGhvbmUgMTYgUGx1c1wiLFwiRGV2aWNlRmluZ2VycHJpbnRcIjpcIkFwcGxlXFxcL2lQaG9uZVxcXC9hcm02NFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFxcLy06MTguMlxcXC8tXFxcLy06LVxcXC9kZWJ1Z1wiLFwiUGhvbmVUeXBlXCI6XCJhcm02NFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXFx1MDAwMFxcdTAwMDBcXHUwMDAwXCIsXCJEZXZpY2VPc1JlbGVhc2VWZXJzaW9uXCI6XCIxOC4yXCIsXCJUaGlyZFBhcnR5RGV2aWNlSWRcIjpcIjVFRDA3MzA4LTQxMzEtNEMwRS05QUM4LUM5NTc0ODQyNzM3RFwifX0ifQ%3D%3D&identity_provider=Google, state: "7d23c04e-456f-42b2-8790-0f5d2cc3eacd", codeChallenge: "qU1YsJNT6koxvla-98hIo9CjVMVjY1c0K4VSAEZbG4E", presentationAnchor: nil, options: AWSCognitoAuthPlugin.HostedUIOptions(scopes: ["openid", "email", "profile"], providerInfo: AWSCognitoAuthPlugin.HostedUIProviderInfo(authProvider: Optional(Amplify.AuthProvider.google), idpIdentifier: nil), presentationAnchor: nil, preferPrivateSession: false))))
AWSCognitoAuthPlugin/ShowHostedUISignIn.swift Sending event HostedUIEvent.fetchToken
AWSCognitoAuthPlugin/FetchHostedUISignInToken.swift Starting execution
Auth state change:
{
"AuthState.configured" = {
"AuthenticationState.signingIn" = {
"SignInState.signingInWithHostedUI" = {
"HostedUISignInState.fetchingToken" = {
};
};
};
"AuthorizationState.configured" = {
};
"SignUpState.notStarted" = {
};
};
}
Checking next step for: signingInWithHostedUI(AWSCognitoAuthPlugin.HostedUISignInState.fetchingToken)
AWSCognitoAuthPlugin/FetchHostedUISignInToken.swift Sending event SignInEvent(data: nil, id: "807B9B2A-FFC3-4431-9F21-69332210E986", eventType: AWSCognitoAuthPlugin.SignInEvent.EventType.finalizeSignIn(["userId": "93********************************07", "userName": "Go************************21", "signedInDate": 2025-04-19 05:45:06 +0000, "deviceMetadata": ["noData": "noData"], "tokens": ["refreshToken": "ey*****4Q", "accessToken": "ey*****ug", "expiry": 2025-04-19 06:45:06 +0000, "idToken": "ey*****mA"], "signInMethod": AWSCognitoAuthPlugin.SignInMethod.hostedUI(AWSCognitoAuthPlugin.HostedUIOptions(scopes: ["openid", "email", "profile"], providerInfo: AWSCognitoAuthPlugin.HostedUIProviderInfo(authProvider: Optional(Amplify.AuthProvider.google), idpIdentifier: nil), presentationAnchor: nil, preferPrivateSession: false))]), time: nil)
AWSCognitoAuthPlugin/SignInComplete.swift Starting execution
AWSCognitoAuthPlugin/SignInComplete.swift Sending event AuthenticationEvent.signInCompleted
Checking next step for: signingInWithHostedUI(AWSCognitoAuthPlugin.HostedUISignInState.done)
Auth state change:
{
"AuthState.configured" = {
"AuthenticationState.signingIn" = {
"SignInState.signingInWithHostedUI" = {
"HostedUISignInState.done" = {
};
};
};
"AuthorizationState.configured" = {
};
"SignUpState.notStarted" = {
};
};
}
AWSCognitoAuthPlugin/InitializeFetchAuthSessionWithUserPool.swift Starting execution
AWSCognitoAuthPlugin/InitializeFetchAuthSessionWithUserPool.swift Sending event FetchAuthSessionEvent.throwError
AWSCognitoAuthPlugin/InformSessionError.swift Starting execution
AWSCognitoAuthPlugin/InformSessionError.swift Sending event AuthorizationEvent.receivedSessionError
AWSCognitoAuthPlugin/PersistCredentials.swift Starting execution
AWSCognitoAuthPlugin/StoreCredentials.swift Starting execution
Credential Store state change:
{
"CredentialStoreState.storingCredentials" = {
};
}
Auth state change:
{
"AuthState.configured" = {
"AuthenticationState.signedIn" = {
deviceMetadata = "[\"noData\": \"noData\"]";
signInMethod = "AWSCognitoAuthPlugin.SignInMethod.hostedUI(AWSCognitoAuthPlugin.HostedUIOptions(scopes: [\"openid\", \"email\", \"profile\"], providerInfo: AWSCognitoAuthPlugin.HostedUIProviderInfo(authProvider: Optional(Amplify.AuthProvider.google), idpIdentifier: nil), presentationAnchor: nil, preferPrivateSession: false))";
signedInDate = "2025-04-19 05:45:06 +0000";
tokens = "[\"idToken\": \"ey*****mA\", \"expiry\": 2025-04-19 06:45:06 +0000, \"refreshToken\": \"ey*****4Q\", \"accessToken\": \"ey*****ug\"]";
userId = "93********************************07";
userName = "Go************************21";
};
"AuthorizationState.fetchingAuthSessionWithUserPool" = {
"FetchSessionState.notStarted" = {
};
};
"SignUpState.notStarted" = {
};
};
}
[KeychainStore] Initialized keychain with service=com.amplify.awsCognitoAuthPlugin, attributes=KeychainStoreAttributes(itemClass: "genp", service: "com.amplify.awsCognitoAuthPlugin", accessGroup: nil), accessGroup=No access group specified
[KeychainStore] Started retrieving `Data` from the store with key=authConfiguration
[KeychainStore] Successfully retrieved `Data` from the store with key=authConfiguration
Auth state change:
{
"AuthState.configured" = {
"AuthenticationState.signedIn" = {
deviceMetadata = "[\"noData\": \"noData\"]";
signInMethod = "AWSCognitoAuthPlugin.SignInMethod.hostedUI(AWSCognitoAuthPlugin.HostedUIOptions(scopes: [\"openid\", \"email\", \"profile\"], providerInfo: AWSCognitoAuthPlugin.HostedUIProviderInfo(authProvider: Optional(Amplify.AuthProvider.google), idpIdentifier: nil), presentationAnchor: nil, preferPrivateSession: false))";
signedInDate = "2025-04-19 05:45:06 +0000";
tokens = "[\"accessToken\": \"ey*****ug\", \"expiry\": 2025-04-19 06:45:06 +0000, \"refreshToken\": \"ey*****4Q\", \"idToken\": \"ey*****mA\"]";
userId = "93********************************07";
userName = "Go************************21";
};
"AuthorizationState.fetchingAuthSessionWithUserPool" = {
"FetchSessionState.error" = {
error = "AWSCognitoAuthPlugin.FetchSessionError.noIdentityPool";
};
};
"SignUpState.notStarted" = {
};
};
}
Auth state change:
{
"AuthState.configured" = {
"AuthenticationState.signedIn" = {
deviceMetadata = "[\"noData\": \"noData\"]";
signInMethod = "AWSCognitoAuthPlugin.SignInMethod.hostedUI(AWSCognitoAuthPlugin.HostedUIOptions(scopes: [\"openid\", \"email\", \"profile\"], providerInfo: AWSCognitoAuthPlugin.HostedUIProviderInfo(authProvider: Optional(Amplify.AuthProvider.google), idpIdentifier: nil), presentationAnchor: nil, preferPrivateSession: false))";
signedInDate = "2025-04-19 05:45:06 +0000";
tokens = "[\"refreshToken\": \"ey*****4Q\", \"accessToken\": \"ey*****ug\", \"expiry\": 2025-04-19 06:45:06 +0000, \"idToken\": \"ey*****mA\"]";
userId = "93********************************07";
userName = "Go************************21";
};
"AuthorizationState.storingCredentials" = userPoolOnly;
"SignUpState.notStarted" = {
};
};
}
[KeychainStore] Started setting `Data` for key=authConfiguration
[KeychainStore] Initialized fetching to decide whether update or add
[KeychainStore] Found existing item, updating
[KeychainStore] Successfully updated `Data` in keychain for key=authConfiguration
[KeychainStore] Started setting `Data` for key=amplify.eu-central-*******.session
[KeychainStore] Initialized fetching to decide whether update or add
[KeychainStore] Unable to find an existing item, creating new item
[KeychainStore] Successfully added `Data` in keychain for key=amplify.eu-central-*******.session
AWSCognitoAuthPlugin/StoreCredentials.swift Sending event CredentialStoreEvent.completedOperation
AWSCognitoAuthPlugin/IdleCredentialStore.swift Starting execution
AWSCognitoAuthPlugin/PersistCredentials.swift Sending event AuthorizationEvent.sessionEstablished
AWSCognitoAuthPlugin/IdleCredentialStore.swift Sending event CredentialStoreEvent.moveToIdleState
Auth state change:
{
"AuthState.configured" = {
"AuthenticationState.signedIn" = {
deviceMetadata = "[\"noData\": \"noData\"]";
signInMethod = "AWSCognitoAuthPlugin.SignInMethod.hostedUI(AWSCognitoAuthPlugin.HostedUIOptions(scopes: [\"openid\", \"email\", \"profile\"], providerInfo: AWSCognitoAuthPlugin.HostedUIProviderInfo(authProvider: Optional(Amplify.AuthProvider.google), idpIdentifier: nil), presentationAnchor: nil, preferPrivateSession: false))";
signedInDate = "2025-04-19 05:45:06 +0000";
tokens = "[\"accessToken\": \"ey*****ug\", \"refreshToken\": \"ey*****4Q\", \"expiry\": 2025-04-19 06:45:06 +0000, \"idToken\": \"ey*****mA\"]";
userId = "93********************************07";
userName = "Go************************21";
};
"AuthorizationState.sessionEstablished" = userPoolOnly;
"SignUpState.notStarted" = {
};
};
}
Received result
Credential Store state change:
{
"CredentialStoreState.success" = {
savedData = "AWSCognitoAuthPlugin.CredentialStoreData.amplifyCredentials(userPoolOnly)";
};
}
Credential Store state change:
{
"CredentialStoreState.idle" = {
};
}
Received result
Successfully completed execution for Auth.socialWebUISignInAPI with result:
AuthSignInResult(nextStep: Amplify.AuthSignInStep.done)
Google sign in successful
Google login successful
User signed in via Hub
Part 2.
Starting execution for Auth.signOutAPI
Check if authstate configured
Auth state configured
Sending signOut event
Waiting for signOut completion
Auth state change:
{
"AuthState.configured" = {
"AuthenticationState.signingOut" = {
"SignOutState.notStarted" = {
};
};
"AuthorizationState.signingOut" = {
};
"SignUpState.notStarted" = {
};
};
}
AWSCognitoAuthPlugin/InitiateSignOut.swift Starting execution
AWSCognitoAuthPlugin/InitiateSignOut.swift Sending event SignOutEvent.invokeHostedUISignOut
AWSCognitoAuthPlugin/ShowHostedUISignOut.swift Starting execution
Auth state change:
{
"AuthState.configured" = {
"AuthenticationState.signingOut" = {
"SignOutState.signingOutHostedUI" = {
};
};
"AuthorizationState.signingOut" = {
};
"SignUpState.notStarted" = {
};
};
}
AWSCognitoAuthPlugin/ShowHostedUISignOut.swift Sending event SignOutEvent.revokeToken
AWSCognitoAuthPlugin/RevokeToken.swift Starting execution
Auth state change:
{
"AuthState.configured" = {
"AuthenticationState.signingOut" = {
"SignOutState.revokingToken" = {
};
};
"AuthorizationState.signingOut" = {
};
"SignUpState.notStarted" = {
};
};
}
AWSCognitoAuthPlugin/RevokeToken.swift Starting revoke token api
AWSCognitoAuthPlugin/RevokeToken.swift Revoke token succeeded
AWSCognitoAuthPlugin/RevokeToken.swift Sending event SignOutEvent.signOutLocally
AWSCognitoAuthPlugin/SignOutLocally.swift Starting execution
Auth state change:
{
"AuthState.configured" = {
"AuthenticationState.signingOut" = {
"SignOutState.signingOutLocally" = {
};
};
"AuthorizationState.signingOut" = {
};
"SignUpState.notStarted" = {
};
};
}
AWSCognitoAuthPlugin/ClearCredentialStore.swift Starting execution
Credential Store state change:
{
"CredentialStoreState.clearingCredentials" = {
};
}
[KeychainStore] Initialized keychain with service=com.amplify.awsCognitoAuthPlugin, attributes=KeychainStoreAttributes(itemClass: "genp", service: "com.amplify.awsCognitoAuthPlugin", accessGroup: nil), accessGroup=No access group specified
[KeychainStore] Started retrieving `Data` from the store with key=authConfiguration
[KeychainStore] Successfully retrieved `Data` from the store with key=authConfiguration
[KeychainStore] Started setting `Data` for key=authConfiguration
[KeychainStore] Initialized fetching to decide whether update or add
[KeychainStore] Found existing item, updating
[KeychainStore] Successfully updated `Data` in keychain for key=authConfiguration
[KeychainStore] Starting to remove item from keychain with key=amplify.eu-central-*******.session
[KeychainStore] Successfully removed item from keychain
AWSCognitoAuthPlugin/ClearCredentialStore.swift Sending event CredentialStoreEvent.credentialCleared
AWSCognitoAuthPlugin/IdleCredentialStore.swift Starting execution
AWSCognitoAuthPlugin/IdleCredentialStore.swift Sending event CredentialStoreEvent.moveToIdleState
AWSCognitoAuthPlugin/SignOutLocally.swift Sending event SignOutEvent.signedOutSuccess
Auth state change:
{
"AuthState.configured" = {
"AuthenticationState.signedOut" = {
lastKnownUserName = "Go************************21";
};
"AuthorizationState.configured" = {
};
"SignUpState.notStarted" = {
};
};
}
Credential Store state change:
{
"CredentialStoreState.clearedCredential" = {
clearedDataType = "AWSCognitoAuthPlugin.CredentialStoreDataType.amplifyCredentials";
};
}
Credential Store state change:
{
"CredentialStoreState.idle" = {
};
}
Successfully completed execution for Auth.signOutAPI with result:
complete
User signed out via Hub
Local signout successful: true
User signed out successfully.
Is this a regression?
Yes
Regression additional context
No response
Platforms
No response
OS Version
iOS16
Device
iPhone 16 simulator and iPhone device
Specific to simulators
No
Additional context
No response
Metadata
Metadata
Assignees
Labels
authIssues related to the Auth categoryIssues related to the Auth categoryquestionGeneral questionGeneral question