Gems/AWSClientAuth/Code/Include/UserManagement/AWSCognitoUserManagementBus.h (79 lines of code) (raw):

/* * Copyright (c) Contributors to the Open 3D Engine Project. * For complete copyright and license terms please see the LICENSE at the root of this distribution. * * SPDX-License-Identifier: Apache-2.0 OR MIT * */ #pragma once #include <AzCore/EBus/EBus.h> #include <AzCore/Settings/SettingsRegistryImpl.h> namespace AWSClientAuth { //! Abstract class for AWS Cognito user management requests. class IAWSCognitoUserManagementRequests { public: AZ_TYPE_INFO(IAWSCognitoUserManagementRequests, "{A4C90F21-7056-4827-8C6B-401E6945697D}"); //! Initialize Cognito User pool using settings from resource mappings. //! @param settingsRegistryPath settingsRegistryPath Path for the settings registry file to use. virtual bool Initialize() = 0; // Requests interface //! Cognito user pool email sign up start. //! @param username User name to use for sign up. //! @param password Password to use for sign up. //! @param email Email used to send confirmation code. virtual void EmailSignUpAsync(const AZStd::string& userName, const AZStd::string& password, const AZStd::string& email) = 0; //! Cognito user pool phone sign up start. //! @param username User name to use for sign up. //! @param password Password to use for sign up. //! @param phoneNumber Phone number used to send confirmation code. virtual void PhoneSignUpAsync(const AZStd::string& userName, const AZStd::string& password, const AZStd::string& phoneNumber) = 0; //! Cognito user pool confirm sign up with confirmation code. Used to confirm email or phone sign up. //! @param username User name to use to confirm sign up. //! @param confirmationCode Code sent to email/phone from sign up call. virtual void ConfirmSignUpAsync(const AZStd::string& userName, const AZStd::string& confirmationCode) = 0; //! Cognito user forgot password start //! @param username User name to use to reset password for. virtual void ForgotPasswordAsync(const AZStd::string& userName) = 0; //! Cognito user pool confirm forgot password with confirmation code. //! @param username User name to use to confirm reset password for. //! @param confirmationCode Code sent to email/phone for forgot password step. //! @param newPassword New password to set the changed value to. virtual void ConfirmForgotPasswordAsync(const AZStd::string& userName, const AZStd::string& confirmationCode, const AZStd::string& newPassword) = 0; //! Cognito user pool enable multi factor authentication for signed in user. //! @param accessToken Access token from successful sign in. virtual void EnableMFAAsync(const AZStd::string& accessToken) = 0; }; //! Implements AWS Cognito user pool user management requests. class AWSCognitoUserManagementRequests : public AZ::EBusTraits { public: ////////////////////////////////////////////////////////////////////////// // EBusTraits overrides using MutexType = AZ::NullMutex; static const AZ::EBusHandlerPolicy HandlerPolicy = AZ::EBusHandlerPolicy::Single; static const AZ::EBusAddressPolicy AddressPolicy = AZ::EBusAddressPolicy::Single; ////////////////////////////////////////////////////////////////////////// }; using AWSCognitoUserManagementRequestBus = AZ::EBus<IAWSCognitoUserManagementRequests, AWSCognitoUserManagementRequests>; class AWSCognitoUserManagementNotifications : public AZ::EBusTraits { public: ////////////////////////////////////////////////////////////////////////// // EBusTraits overrides static const AZ::EBusHandlerPolicy HandlerPolicy = AZ::EBusHandlerPolicy::Multiple; static const AZ::EBusAddressPolicy AddressPolicy = AZ::EBusAddressPolicy::Single; ////////////////////////////////////////////////////////////////////////// ////////////////////////////ss////////////////////////////////////////////// // Notifications interface //! Event for Cognito user pool email sign up success //! @param uuid Unique identified from Cognito User pool for new user virtual void OnEmailSignUpSuccess(const AZStd::string& uuid) { AZ_UNUSED(uuid); } //! Event for Cognito user pool email sign up fail //! @param error Error message virtual void OnEmailSignUpFail(const AZStd::string& error) { AZ_UNUSED(error); } //! Event for Cognito user pool phone sign up success //! @param error Error message virtual void OnPhoneSignUpSuccess(const AZStd::string& uuid) { AZ_UNUSED(uuid); } //! Event for Cognito user pool phone sign up fail //! @param error Error message virtual void OnPhoneSignUpFail(const AZStd::string& error) { AZ_UNUSED(error); } //! Event for Cognito confirm sign up success virtual void OnConfirmSignUpSuccess() { } //! Event for Cognito confirm sign up fail //! @param error Error message virtual void OnConfirmSignUpFail(const AZStd::string& error) { AZ_UNUSED(error); } //! Event for Cognito forgot password success virtual void OnForgotPasswordSuccess() { } //! Event for Cognito forgot password fail //! @param error Error message virtual void OnForgotPasswordFail(const AZStd::string& error) { AZ_UNUSED(error); } //! Event for Cognito confirm forgot password success virtual void OnConfirmForgotPasswordSuccess() { } //! Event for Cognito confirm forgot password fail //! @param error Error message virtual void OnConfirmForgotPasswordFail(const AZStd::string& error) { AZ_UNUSED(error); } //! Event for Cognito enable mfa success virtual void OnEnableMFASuccess() { } //! Event for Cognito enable mfa fail //! @param error Error message virtual void OnEnableMFAFail(const AZStd::string& error) { AZ_UNUSED(error); } ////////////////////////////////////////////////////////////////////////// }; using AWSCognitoUserManagementNotificationBus = AZ::EBus<AWSCognitoUserManagementNotifications>; } // namespace AWSClientAuth