Skip to content

LerianStudio/auth-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Authorization Middleware for Lerian Services

Este repositório contém um middleware de autorização para o framework Fiber em Go, que permite verificar se um usuário está autorizado a realizar uma ação específica em um recurso. O middleware envia uma solicitação POST para um serviço de autorização, passando os detalhes do usuário, recurso e ação desejada.

📦 Instalação

go get -u github.com/LerianStudio/auth-sdk

🚀 Como Usar

1. Crie uma instância do AuthClient:

import "github.com/LerianStudio/auth-sdk/auth/middleware"

authClient := &middleware.AuthClient{
    AuthAddress: "http://localhost:3000",
}

2. Use o middleware na sua aplicação Fiber:

f := fiber.New()

f.Get("/v1/onboarding", auth.Authorize("midaz", "onboarding", "get"), userHandler.GetUsers)
})

app.Listen(":8080")

🛠️ Funcionamento

A função Authorize:

  • Recebe o sub (usuário), resource (recurso) e action (ação desejada).
  • Envia uma solicitação POST ao serviço de autorização.
  • Verifica se a resposta indica que o usuário está autorizado.
  • Permite o fluxo normal da aplicação ou retorna um erro 403 (Forbidden).

📥 Exemplo de Requisição

POST /v1/authorize
Content-Type: application/json
Authorization: Bearer seu_token_aqui

{
    "sub": "lerian/user123_role",
    "resource": "resource_name",
    "action": "read"
}

📡 Serviço de Autorização Esperado

O serviço de autorização deve retornar uma resposta JSON no seguinte formato:

{
    "authorized": true,
    "timestamp": "2025-03-03T12:00:00Z"
}

🚧 Tratamento de Erros

O middleware captura e exibe logs para os seguintes tipos de erro:

  • Falha ao criar a requisição
  • Falha ao enviar a requisição
  • Falha ao ler o corpo da resposta
  • Falha ao desserializar o JSON de resposta

📄 Licença

Este projeto está licenciado sob a licença MIT. Sinta-se à vontade para usá-lo e modificá-lo conforme necessário.

🧑‍💻 Contribuindo

Contribuições são bem-vindas! Abra uma issue ou um pull request para sugestões e melhorias.

📧 Contato

Para dúvidas ou suporte, entre em contato pelo e-mail: contato@lerian.studio.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages