AWS Cognito Login with Embedded Wallets
AWS Cognito is a scalable authentication service provided by Amazon Web Services that enables developers to securely manage user sign-up, sign-in, and access control. Web3Auth supports AWS Cognito as a service provider, allowing seamless integration between AWS Cognito’s authentication capabilities and Web3Auth’s decentralized key management infrastructure.
AWS Cognito supports a wide set of social logins.
Create an AWS Cognito application
To begin the integration process, developers must first create a new AWS Cognito application using the AWS Management Console. This initial setup is required before configuring the connection within Web3Auth.
Once the AWS Cognito application is created, developers can proceed to add it as a custom connection in the dashboard.
Learn how to set up AWS Cognito.
Create an AWS Cognito connection
To use this feature, developers must go to the Custom Connections tab in the dashboard.

Follow these steps to create a AWS Cognito connection:
- Visit the dashboard.
- Go to the Custom Connections section.
- Click on the Settings icon near the
AWS Cognitoconnection. - Enter the
Cognito Connection ID. - Paste
https://cognito-idp.{REGION}.amazonaws.com/{USER_POOL_ID}/.well-known/jwks.jsonasJWKS Endpoint. - Paste a sample
JWT Tokento auto populate the best JWT validations possible. - Select the
JWT user identifier:email,suborcustom. - Toggle the Case Sensitivity of
User Identifier. (Optional) - Click on Add Custom Validations to add validations manually.
- Type iss as a field and
https://cognito-idp.{REGION}.amazonaws.com/{USER_POOL_ID}as a value. - Next, type aud as a field and
APP_CLIENT_IDas a value.
- Type iss as a field and
- Finally, click on the Add Connection button.
Note: Replace the
REGION,USER_POOL_IDandAPP_CLIENT_IDwith your Cognito specific details.

Usage
Since, the AWS Cognito Connection details are available from the dashboard, developers don't need to pass any additional parameters to the Web3AuthProvider.
Follow our quickstart to set up the basic flow.
Log in with AWS Cognito
await connectTo(WALLET_CONNECTORS.AUTH, {
authConnection: AUTH_CONNECTION.CUSTOM,
authConnectionId: "w3a-cognito-demo",
extraLoginOptions: {
clientId: import.meta.env.VITE_COGNITO_CLIENT_ID,
domain: "https://shahbaz-web3auth.auth.ap-south-1.amazoncognito.com",
verifierIdField: "email",
response_type: "token",
scope: "email profile openid",
},
});