Shows how to use the AWS SDK for C++ with Amazon Cognito to sign up users, set users up for multi-factor authentication (MFA), and sign in to get access tokens.
Amazon Cognito provides authentication, authorization, and user management for your web and mobile apps. Your users can sign in directly with a user name and password, or through a third party such as Facebook, Amazon, Google or Apple.
- Running this code might result in charges to your AWS account.
- Running the tests might result in charges to your AWS account.
- We recommend that you grant your code least privilege. At most, grant only the minimum permissions required to perform the task. For more information, see Grant least privilege.
- This code is not tested in every AWS Region. For more information, see AWS Regional Services.
Code excerpts that show you how to call individual service functions.
- Confirm a user (ConfirmSignUp)
- Delete a user (DeleteUser)
- Get a token to associate an MFA application with a user (AssociateSoftwareToken)
- Get information about a user (AdminGetUser)
- Resend a confirmation code (ResendConfirmationCode)
- Respond to SRP authentication challenges (RespondToAuthChallenge)
- Sign up a user (SignUp)
- Start authentication with a tracked device (InitiateAuth)
- Verify an MFA application with a user (VerifySoftwareToken)
Code examples that show you how to accomplish a specific task by calling multiple functions within the same service.
- Sign up a user with a user pool that requires MFA (ConfirmSignUp, DeleteUser, AssociateSoftwareToken, AdminGetUser, ResendConfirmationCode, RespondToAuthChallenge, SignUp, InitiateAuth, VerifySoftwareToken)
Before using the code examples, first complete the installation and setup steps for Getting started in the AWS SDK for C++ Developer Guide. This section covers how to get and build the SDK, and how to build your own code by using the SDK with a sample Hello World-style application.
Next, for information on code example structures and how to build and run the examples, see Getting started with the AWS SDK for C++ code examples.
The Amazon Cognito resources for Sign up a user with a user pool that requires MFA can be created by running the AWS CloudFormation
setup.yaml script in resources/cdk/cognito_scenario_user_pool_with_mfa.
For instructions on how to run the script, see the README.
Optionally, build Sign up a user with a user pool that requires MFA to use the qr-code-generator library. This creates a QR code image for MFA authentication. A conanfile.txt is included with the sample code. You can install the qr-code-generator library by using the Conan C++ package manager.
To install the qr-code-generator library using Conan, run the following command from the build directory.
On Linux and Mac.
conan install <path_to_source_dir> --build=missing
On Windows.
conan install <path_to_source_dir> --build=missing -s build_type=Debug
Next, enable the USING_CONAN variable in CMakeLists.txt.
set(USING_CONAN TRUE) # Setting to true enables generation of a QR code.
cd <BUILD_DIR>
cmake <path-to-root-of-this-source-code> -DBUILD_TESTS=ON
make
ctest Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. SPDX-License-Identifier: Apache-2.0