¿Cómo organizar correctamente la autenticación en Go? (JWT, sesiones, middleware)
¡Hola a todos! Soy un desarrollador Go principiante y estoy escribiendo mi primera API REST en Go puro (sin frameworks como Gin o Echo). Me quedé atascado en el tema de la autenticación. He leído muchos artículos, pero en todas partes ofrecen enfoques diferentes: algunos usan JWT, otros usan sesiones con cookies, otros usan OAuth2 a través de servicios de terceros. Estoy muy confundido.
Mi tarea: hacer una API simple para notas. El usuario se registra, inicia sesión, obtiene un token y luego lo usa para acceder a endpoints protegidos. Por ahora, he esbozado este código primitivo para verificar la contraseña en el handler:
```go
func loginHandler(w http.ResponseWriter, r *http.Request) {
// ... parseo de JSON con login y contraseña
user, err := findUserByEmail(email)
if err != nil || !checkPasswordHash(password, user.Hash) {
http.Error(w, "unauthorized", http.StatusUnauthorized)
return
}
// ¿Y luego qué? ¿Cómo guardar el hecho de la autenticación?
w.Write([]byte("logged in"))
}
```
Preguntas:
1. ¿Qué enfoque se considera ahora