Cognito authorizer for fastapi based projects
Project description
Rivia Cognito FastAPI Authorizer
Este projeto fornece uma implementação de um autorizador JWT usando o Amazon Cognito e FastAPI. Ele verifica tokens JWT para autenticação e autorização de usuários.
Requisitos
Certifique-se de que as seguintes variáveis de ambiente estejam configuradas:
REGION: A região AWS onde seu User Pool do Cognito está localizado.COGNITO_USER_POOL_ID: O ID do User Pool do Cognito.COGNITO_APP_CLIENT_ID: O ID do cliente da aplicação do Cognito.
Instalação
-
Clone o repositório:
git clone <URL_DO_REPOSITORIO> cd rivia-cognito-fastapi-authorizer
-
Instale as dependências:
pip install -r requirements.txt
Uso
Verificação de Token
A função verify_token verifica a validade de um token JWT. Ela realiza várias verificações, incluindo a assinatura do token, a expiração e a audiência.
Exemplo de uso:
from fastapi import FastAPI, Depends
from rivia-cognito-authorizer import verify_token
app = FastAPI()
@app.get("/secure-endpoint")
async def secure_endpoint(token_payload: dict = Depends(verify_token)):
return {"message": "This is a secure endpoint", "user": token_payload}
Verificação de Grupos
A função allowed_for_groups cria uma dependência que verifica se o usuário pertence a um dos grupos especificados.
Exemplo de uso:
from fastapi import FastAPI, Depends
from rivia-cognito-authorizer import allowed_for_groups
app = FastAPI()
@app.get("/admin-endpoint")
async def admin_endpoint(token_payload: dict = Depends(allowed_for_groups(["admin"]))):
return {"message": "This is an admin endpoint", "user": token_payload}
Licença
Este projeto está licenciado sob a Licença Apache 2.0. Veja o arquivo LICENSE para mais detalhes.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters