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.
go get -u github.com/LerianStudio/auth-sdk
import "github.com/LerianStudio/auth-sdk/auth/middleware"
authClient := &middleware.AuthClient{
AuthAddress: "http://localhost:3000",
}
f := fiber.New()
f.Get("/v1/onboarding", auth.Authorize("midaz", "onboarding", "get"), userHandler.GetUsers)
})
app.Listen(":8080")
A função Authorize
:
- Recebe o
sub
(usuário),resource
(recurso) eaction
(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).
POST /v1/authorize
Content-Type: application/json
Authorization: Bearer seu_token_aqui
{
"sub": "lerian/user123_role",
"resource": "resource_name",
"action": "read"
}
O serviço de autorização deve retornar uma resposta JSON no seguinte formato:
{
"authorized": true,
"timestamp": "2025-03-03T12:00:00Z"
}
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
Este projeto está licenciado sob a licença MIT. Sinta-se à vontade para usá-lo e modificá-lo conforme necessário.
Contribuições são bem-vindas! Abra uma issue ou um pull request para sugestões e melhorias.
Para dúvidas ou suporte, entre em contato pelo e-mail: contato@lerian.studio.