Skip to main content

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

  1. Clone o repositório:

    git clone <URL_DO_REPOSITORIO>
    cd rivia-cognito-fastapi-authorizer
    
  2. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rivia_cognito_authorizer-1.1.0.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rivia_cognito_authorizer-1.1.0-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

Details for the file rivia_cognito_authorizer-1.1.0.tar.gz.

File metadata

File hashes

Hashes for rivia_cognito_authorizer-1.1.0.tar.gz
Algorithm Hash digest
SHA256 d8fa03ff6d1032598073ec4ae1b85728a570d5a52fcf4fccb5e2b168a53895ad
MD5 6601c0b8ac4bd36df87c3020e1031dd4
BLAKE2b-256 5cd85b4ac1a9c76be16ddc1139282d31ae9f3d346f273dc528a6a5823b6f4c49

See more details on using hashes here.

File details

Details for the file rivia_cognito_authorizer-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for rivia_cognito_authorizer-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c5c5e79921b1fc389b7d56ae3483f378faab9a9be2dc6fd84363bb18572f446a
MD5 d8eba8df0aa89e20d42bd2a0c33bf0b1
BLAKE2b-256 f9242cd5d9d125cb082a853340f6eddaa62871311c73ceb7db2aafb5bee0f4b4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page