diff --git a/src/Amazon.Extensions.CognitoAuthentication/Amazon.Extensions.CognitoAuthentication.csproj b/src/Amazon.Extensions.CognitoAuthentication/Amazon.Extensions.CognitoAuthentication.csproj index f1e431b..6f2fb18 100644 --- a/src/Amazon.Extensions.CognitoAuthentication/Amazon.Extensions.CognitoAuthentication.csproj +++ b/src/Amazon.Extensions.CognitoAuthentication/Amazon.Extensions.CognitoAuthentication.csproj @@ -28,7 +28,7 @@ false false true - 2.5.4 + 2.5.5 diff --git a/src/Amazon.Extensions.CognitoAuthentication/CognitoAuthenticationClasses.cs b/src/Amazon.Extensions.CognitoAuthentication/CognitoAuthenticationClasses.cs index e6da3dc..01b0d82 100644 --- a/src/Amazon.Extensions.CognitoAuthentication/CognitoAuthenticationClasses.cs +++ b/src/Amazon.Extensions.CognitoAuthentication/CognitoAuthenticationClasses.cs @@ -68,6 +68,11 @@ public AuthFlowResponse(string sessionId, AuthenticationResultType authenticatio /// applicable for custom authentication. /// public IDictionary ClientMetadata { get; } + + /// + /// The analytics metadata for collecting Amazon Pinpoint metrics. + /// + public AnalyticsMetadataType AnalyticsMetadata { get; set; } } /// @@ -94,7 +99,11 @@ public class InitiateSrpAuthRequest /// /// The client metadata for the current authentication flow. /// - public IDictionary ClientMetadata { get; set; } + public IDictionary ClientMetadata { get; set; } + /// + /// The analytics metadata for collecting Amazon Pinpoint metrics. + /// + public AnalyticsMetadataType AnalyticsMetadata { get; set; } /// /// Enable custom auth flow /// https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-authentication-flow.html#Using-SRP-password-verification-in-custom-authentication-flow @@ -115,7 +124,12 @@ public class InitiateCustomAuthRequest /// /// The client metadata for the current authentication flow. /// - public IDictionary ClientMetadata { get; set; } + public IDictionary ClientMetadata { get; set; } + + /// + /// The analytics metadata for collecting Amazon Pinpoint metrics. + /// + public AnalyticsMetadataType AnalyticsMetadata { get; set; } } /// @@ -194,6 +208,11 @@ public class RespondToCustomChallengeRequest /// public IDictionary ClientMetadata { get; set; } = new Dictionary(); + /// + /// The analytics metadata for collecting Amazon Pinpoint metrics. + /// + public AnalyticsMetadataType AnalyticsMetadata { get; set; } + /// /// The sessionID for the current authentication flow. /// @@ -213,6 +232,11 @@ public class InitiateAdminNoSrpAuthRequest /// /// Optional client metadata to provide in the Initiate Admin Authentication API call /// - public IDictionary ClientMetadata { get; set; } + public IDictionary ClientMetadata { get; set; } + + /// + /// Optional analytics metadata for collecting Amazon Pinpoint metrics. + /// + public AnalyticsMetadataType AnalyticsMetadata { get; set; } } } diff --git a/src/Amazon.Extensions.CognitoAuthentication/CognitoUserAuthentication.cs b/src/Amazon.Extensions.CognitoAuthentication/CognitoUserAuthentication.cs index 1b16a9e..e5b5bfc 100644 --- a/src/Amazon.Extensions.CognitoAuthentication/CognitoUserAuthentication.cs +++ b/src/Amazon.Extensions.CognitoAuthentication/CognitoUserAuthentication.cs @@ -68,6 +68,8 @@ public virtual async Task StartWithSrpAuthAsync(InitiateSrpAut initiateRequest.ClientMetadata = new Dictionary(srpRequest.ClientMetadata); } + initiateRequest.AnalyticsMetadata = srpRequest.AnalyticsMetadata; + if (srpRequest.IsCustomAuthFlow) { initiateRequest.AuthFlow = AuthFlowType.CUSTOM_AUTH; @@ -84,6 +86,8 @@ public virtual async Task StartWithSrpAuthAsync(InitiateSrpAut challengeRequest.ClientMetadata = new Dictionary(srpRequest.ClientMetadata); } + challengeRequest.AnalyticsMetadata = srpRequest.AnalyticsMetadata; + bool challengeResponsesValid = challengeRequest != null && challengeRequest.ChallengeResponses != null; bool deviceKeyValid = Device != null && !string.IsNullOrEmpty(Device.DeviceKey); @@ -238,7 +242,8 @@ public virtual async Task StartWithCustomAuthAsync(InitiateCus AuthFlow = AuthFlowType.CUSTOM_AUTH, AuthParameters = new Dictionary(customRequest.AuthParameters), ClientId = ClientID, - ClientMetadata = new Dictionary(customRequest.ClientMetadata) + ClientMetadata = new Dictionary(customRequest.ClientMetadata), + AnalyticsMetadata = customRequest.AnalyticsMetadata }; InitiateAuthResponse initiateResponse = await Provider.InitiateAuthAsync(authRequest, cancellationToken).ConfigureAwait(false); @@ -283,6 +288,7 @@ public virtual async Task RespondToCustomAuthAsync(RespondToCu ClientId = ClientID, ChallengeResponses = new Dictionary(customRequest.ChallengeParameters), ClientMetadata = new Dictionary(customRequest.ClientMetadata), + AnalyticsMetadata = customRequest.AnalyticsMetadata, Session = customRequest.SessionID }; @@ -730,7 +736,7 @@ private AdminInitiateAuthRequest CreateAdminAuthRequest(InitiateAdminNoSrpAuthRe AuthParameters = new Dictionary() { { CognitoConstants.ChlgParamUsername, Username }, - {CognitoConstants.ChlgParamPassword, adminRequest.Password } + { CognitoConstants.ChlgParamPassword, adminRequest.Password } } }; @@ -749,6 +755,8 @@ private AdminInitiateAuthRequest CreateAdminAuthRequest(InitiateAdminNoSrpAuthRe returnRequest.ClientMetadata = new Dictionary(adminRequest.ClientMetadata); } + returnRequest.AnalyticsMetadata = adminRequest.AnalyticsMetadata; + return returnRequest; }