AuthenticationNotificationBusBehaviorHandler.h 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #pragma once
  9. #include <Authentication/AuthenticationProviderBus.h>
  10. #include <AzCore/Component/TickBus.h>
  11. namespace AWSClientAuth
  12. {
  13. //! Authentication behavior EBus handler
  14. class AuthenticationNotificationBusBehaviorHandler
  15. : public AuthenticationProviderNotificationBus::Handler
  16. , public AZ::BehaviorEBusHandler
  17. {
  18. public:
  19. AZ_EBUS_BEHAVIOR_BINDER(
  20. AuthenticationNotificationBusBehaviorHandler, "{221D74E0-B55A-4086-8B83-B52070A57217}", AZ::SystemAllocator,
  21. OnPasswordGrantSingleFactorSignInSuccess, OnPasswordGrantSingleFactorSignInFail,
  22. OnPasswordGrantMultiFactorSignInSuccess, OnPasswordGrantMultiFactorSignInFail,
  23. OnPasswordGrantMultiFactorConfirmSignInSuccess, OnPasswordGrantMultiFactorConfirmSignInFail,
  24. OnDeviceCodeGrantSignInSuccess, OnDeviceCodeGrantSignInFail,
  25. OnDeviceCodeGrantConfirmSignInSuccess, OnDeviceCodeGrantConfirmSignInFail,
  26. OnRefreshTokensSuccess, OnRefreshTokensFail
  27. );
  28. void OnPasswordGrantSingleFactorSignInSuccess(const AuthenticationTokens& authenticationToken) override
  29. {
  30. AZ::TickBus::QueueFunction([authenticationToken, this]()
  31. {
  32. Call(FN_OnPasswordGrantSingleFactorSignInSuccess, authenticationToken);
  33. });
  34. }
  35. void OnPasswordGrantSingleFactorSignInFail(const AZStd::string& error) override
  36. {
  37. AZ::TickBus::QueueFunction([error, this]()
  38. {
  39. Call(FN_OnPasswordGrantSingleFactorSignInFail, error);
  40. });
  41. }
  42. void OnPasswordGrantMultiFactorSignInSuccess() override
  43. {
  44. AZ::TickBus::QueueFunction([this]()
  45. {
  46. Call(FN_OnPasswordGrantMultiFactorSignInSuccess);
  47. });
  48. }
  49. void OnPasswordGrantMultiFactorSignInFail(const AZStd::string& error) override
  50. {
  51. AZ::TickBus::QueueFunction([error, this]()
  52. {
  53. Call(FN_OnPasswordGrantMultiFactorSignInFail, error);
  54. });
  55. }
  56. void OnPasswordGrantMultiFactorConfirmSignInSuccess(const AuthenticationTokens& authenticationToken) override
  57. {
  58. AZ::TickBus::QueueFunction([authenticationToken, this]()
  59. {
  60. Call(FN_OnPasswordGrantMultiFactorConfirmSignInSuccess, authenticationToken);
  61. });
  62. }
  63. void OnPasswordGrantMultiFactorConfirmSignInFail(const AZStd::string& error) override
  64. {
  65. AZ::TickBus::QueueFunction([error, this]()
  66. {
  67. Call(FN_OnPasswordGrantMultiFactorConfirmSignInFail, error);
  68. });
  69. }
  70. void OnDeviceCodeGrantSignInSuccess(
  71. const AZStd::string& userCode, const AZStd::string& verificationUrl, const int codeExpiresInSeconds) override
  72. {
  73. AZ::TickBus::QueueFunction([userCode, verificationUrl, codeExpiresInSeconds, this]()
  74. {
  75. Call(FN_OnDeviceCodeGrantSignInSuccess, userCode, verificationUrl, codeExpiresInSeconds);
  76. });
  77. }
  78. void OnDeviceCodeGrantSignInFail(const AZStd::string& error) override
  79. {
  80. AZ::TickBus::QueueFunction([error, this]()
  81. {
  82. Call(FN_OnDeviceCodeGrantSignInFail, error);
  83. });
  84. }
  85. void OnDeviceCodeGrantConfirmSignInSuccess(const AuthenticationTokens& authenticationToken) override
  86. {
  87. AZ::TickBus::QueueFunction([authenticationToken, this]()
  88. {
  89. Call(FN_OnDeviceCodeGrantConfirmSignInSuccess, authenticationToken);
  90. });
  91. }
  92. void OnDeviceCodeGrantConfirmSignInFail(const AZStd::string& error) override
  93. {
  94. AZ::TickBus::QueueFunction([error, this]()
  95. {
  96. Call(FN_OnDeviceCodeGrantConfirmSignInFail, error);
  97. });
  98. }
  99. void OnRefreshTokensSuccess(const AuthenticationTokens& authenticationToken) override
  100. {
  101. AZ::TickBus::QueueFunction([authenticationToken, this]()
  102. {
  103. Call(FN_OnRefreshTokensSuccess, authenticationToken);
  104. });
  105. }
  106. void OnRefreshTokensFail(const AZStd::string& error) override
  107. {
  108. AZ::TickBus::QueueFunction([error, this]()
  109. {
  110. Call(FN_OnRefreshTokensFail, error);
  111. });
  112. }
  113. };
  114. } // namespace AWSClientAuth