Avatar ·

Como organizar corretamente a autenticação em Go? (JWT, sessões, middleware)

Olá a todos! Sou um desenvolvedor Go iniciante, escrevendo minha primeira API REST em Go puro (sem frameworks como Gin ou Echo). Estou preso na questão da autenticação. Li vários artigos, mas em todos são sugeridas abordagens diferentes: alguns usam JWT, outros usam sessões com cookies, outros usam OAuth2 através de serviços de terceiros. Estou completamente confuso. Minha tarefa: fazer uma API simples para anotações. O usuário se registra, faz login, obtém um token e depois o utiliza para acessar endpoints protegidos. Por enquanto, montei este código primitivo para verificar a senha no handler: ```go func loginHandler(w http.ResponseWriter, r *http.Request) { // ... parsing do JSON com login e senha user, err := findUserByEmail(email) if err != nil || !checkPasswordHash(password, user.Hash) { http.Error(w, "unauthorized", http.StatusUnauthorized) return } // E agora? Como salvar o fato da autenticação? w.Write([]byte("logged in")) } ``` Perguntas: 1. Qual abordagem é atualmente considerada