authsys
o_problema
Aprender Go. Não é produto: o jeito mais rápido de separar o que é a linguagem do que é o problema é reescrever um domínio que você já entende, então peguei o trabalho de auth que eu já tinha levado à produção em .NET no Telas Paraná.
o_que_faz
- O layout padrão da comunidade Go com separação limpa em camadas (handler, service, repository, model) mais pacotes de DTO, JWT, resposta e configuração, e injeção de dependência manual sem container.
- O model de usuário embute uma estrutura de conta com o vocabulário de segurança: estado online, último login e logout, contagem de tentativas falhas, expiração do bloqueio e flag de conta desabilitada. A estrutura para lockout e conta desabilitada existe no schema.
- O campo de senha é marcado de forma que nunca pode sair numa resposta.
- Três rotas: criar usuário, login, logout.
stack
backend
Go 1.25 · Gin · GORM · PostgreSQL 16 · JWT
como_foi_construido
Seis commits em cinco dias, lendo como o que é: um exercício de linguagem contra um domínio familiar, não uma tentativa de serviço entregável.
O valor está na comparação. Tendo construído e endurecido exatamente esse domínio em .NET (Argon2id, rotação de refresh token com detecção de reuso, mitigação de timing attack), reescrever o esqueleto em Go isola a linguagem do problema.
limitacoes_conhecidas
- Isto é um esqueleto, não um sistema. Dizer isso com todas as letras é o ponto da entrada.
- O arquivo de middleware de autenticação contém apenas a declaração de pacote. O middleware não existe, e nenhuma rota é protegida.
- O Makefile está vazio.
- Não há testes.
- Os campos de lockout e conta desabilitada existem no model, mas nada os lê ou escreve ainda: o schema antecipa um comportamento que não está implementado.
tempo de código rastreado
20 hrs 42 mins Fonte: WakaTime · rastreado desde 2026-03-17 até agora