O AuthNex é um sistema de autenticação e autorização desenvolvido em Go para garantir segurança e controle de acesso eficientes em ambientes diversos. Com uma arquitetura flexível e modular, o AuthNex oferece uma solução completa para autenticação de usuários, controle granular de permissões e suporte multitenancy.
-
Autenticação Segura:
- Baseada em JWT para autenticação robusta.
- Gerenciamento flexível de credenciais de usuários.
-
Autorização Personalizada:
- Controle granular de permissões com base em RBAC ou políticas específicas.
- Concessão e revogação dinâmica de permissões.
-
Multitenancy Integrado:
- Suporte completo para ambientes multitenants.
- Associação de usuários a tenants para gerenciamento eficiente.
-
APIs Restful:
- APIs bem definidas para manipulação de usuários, permissões e configurações multitenants.
- Comunicação segura via HTTPS.
-
Middleware de Segurança:
- Utilização de middlewares para autenticação e autorização em todas as requisições.
- Proteção contra ataques comuns, como CSRF e injeção SQL.
-
Escalabilidade e Desempenho:
- Projetado para escalabilidade, permitindo o gerenciamento eficiente de grandes volumes de usuários e permissões.
- Otimização de consultas de banco de dados para desempenho máximo.
O AuthNex é fácil de implementar e se integra perfeitamente a diferentes tipos de aplicativos, desde sistemas web até APIs RESTful. Consulte nossa documentação abrangente e exemplos práticos para começar a utilizar o AuthNex e aprimorar a segurança e o controle de acesso em seu projeto.
Transforme a autenticação e autorização em uma experiência segura e flexível com o AuthNex em Go.
- Clone este repositório para o seu ambiente local:
git clone [email protected]:br4tech/auth-nex.git
cd auth-nex
- Gerar/Atualizar o arquivo do wire(DI):
go run github.com/google/wire/cmd/wire
Obs: Para ignorar o vendor ao criar o wire_gen:
GOFLAGS=-mod=mod go run github.com/google/wire/cmd/wire
- Executar aplicacao:
Com docker:
docker-compose build
docker-compose up
- Sem docker e docker-compose
go run cmd/wire_gen.go cmd/main.go
Obs: Caso execute sem o docker e compose, voce precisa ter um banco postgresql com o database authdb
criado
4.1. Podemos subir uma imagem do postgresql, conforme abaixo e criar o banco authdb
e executar o passo 4
docker run --name authnext -e POSTGRES_PASSWORD=123456 -d -p 5434:5432 postgres
docker exec -it authnext bash
psql -U postgres
CREATE DATABASE authdb;
- Para criar os arquivos de mock, podemos executar o exemplo:
mockgen -source=internal/core/port/nome-da-interface -destination=internal/test/mock/mock_nome-da-interface.go --package=mock
Observação: Caso não possua instalado o mockgen, será necessário seguir os passos abaixo:
sudo apt install mockgen
go install github.com/golang/mock/[email protected]
- Rodar os testes e ver o coverage:
go test -coverprofile=coverage.out ./...
go tool cover -html=coverage.out