---
# System prepended metadata

title: Cognito Auth with NextAuth.js

---

# Cognito Auth with NextAuth.js

## Create a Nextjs NextAuth project
```
git clone https://github.com/nextauthjs/next-auth-example.git
cd next-auth-example
npm i
cp .env.local.example .env.local
```
Add details for one or more providers (e.g. Google, Twitter, GitHub, Email, etc).
Using SQLite3 database.

## Create Cognito pool 

Followed instruction to create a user pool according to docs 
https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-client-apps.html

**Make sure that**
Generate client secret is **Disabled**
(ALLOW_ADMIN_USER_PASSWORD_AUTH) is  **Enabled**

Here's how the settings should l-ook like , 
![](https://i.imgur.com/KwjiR8S.png)


and also set the scopes accoriding to nextauth docs
https://next-auth.js.org/providers/cognito

## Add the provider in nextauth API and initialize the credentials

```
import Providers from `next-auth/providers`
...
providers: [
  Providers.Cognito({
    clientId: process.env.COGNITO_CLIENT_ID,
    domain: process.env.COGNITO_DOMAIN,
  })
]
...
```

*Environment file*

COGNITO_CLIENT_ID = <CLIENT_ID>
COGNITO_DOMAIN = <COGNTIO_DOMAIN_WITHOUT_HTTPS://>

## Run your application

```
npm run dev
```

### Solution by <a href="https://twitter.com/rashmivabbigeri?ref_src=twsrc%5Etfw" class="twitter-follow-button" data-show-count="false">@rashmivabbigeri</a>








