Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/riolaf05/aws-cognito-fastapi-auth
Code to validate JWT tokens from Cognito on FastAPI
https://github.com/riolaf05/aws-cognito-fastapi-auth
authentication aws cognito cognito-user-pool fastapi oauth2 terraform
Last synced: 4 days ago
JSON representation
Code to validate JWT tokens from Cognito on FastAPI
- Host: GitHub
- URL: https://github.com/riolaf05/aws-cognito-fastapi-auth
- Owner: riolaf05
- Created: 2024-05-08T17:57:54.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-05-09T09:21:31.000Z (9 months ago)
- Last Synced: 2024-11-20T19:44:46.503Z (2 months ago)
- Topics: authentication, aws, cognito, cognito-user-pool, fastapi, oauth2, terraform
- Language: HCL
- Homepage:
- Size: 11.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# FastAPI Project with Cognito Authentication
This repository contains a FastAPI project with Cognito-based authentication. Below are the steps to install, configure, and use the application.## Prerequisites
Make sure you have Terraform installed on your system and configured correctly for managing infrastructure.1. Installing Infrastructure
Navigate to the infrastructure folder.
Run `terraform init` and `terraform apply` to create the necessary infrastructure.2. Configuring Environment Variables
Copy the Cognito ID and Cognito Secret from the AWS console.
Add these values to your environment variables file as COGNITO_ID and COGNITO_SECRET.3. Launching the FastAPI Application
Ensure you have all Python dependencies installed (`pip install -r requirements.txt`).
Run the following command to start the FastAPI application:```console
uvicorn app.service:app --host 0.0.0.0 --port 3000 --reload
```4. Requesting Access Token
Execute the following curl command to obtain the access token:```console
curl --request POST \
--url https://fastapi-auth-pool.auth.eu-south-1.amazoncognito.com/oauth2/token \
--header 'content-type: application/x-www-form-urlencoded' \
--data grant_type=client_credentials \
--data scope=fastapi-auth/api\
--data client_id=YOUR_CLIENT_ID \
--data client_secret=YOUR_CLIENT_SECRET
```Make sure to replace YOUR_CLIENT_ID and YOUR_CLIENT_SECRET with the correct values.
5. Invoking the Secure Endpoint
To call the /secure endpoint, use the token obtained in the previous step as part of the authorization header:```console
curl --request GET \
--url http://localhost:3000/secure \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN'
```Make sure to replace YOUR_ACCESS_TOKEN with the token obtained from the previous step.