Closed leogtzr closed 5 days ago
Se ve todo bastante flaky:
func Logout(w http.ResponseWriter, r *http.Request) { if r.Method != http.MethodPost { http.Error(w, "Método no permitido", http.StatusMethodNotAllowed) return } store := middleware.GetSessionStore() session, err := store.Get(r, "session") if err != nil { http.Error(w, "Error obteniendo la sesión", http.StatusInternalServerError) return } // Verificar el token CSRF csrfToken := r.FormValue("csrf_token") if csrfToken != session.Values["csrf_token"] { http.Error(w, "Token CSRF inválido", http.StatusForbidden) return } // Clear all the values from session: session.Values = make(map[interface{}]interface{}) session.Options.MaxAge = -1 err = session.Save(r, w) if err != nil { http.Error(w, "Error guardando la sesión", http.StatusInternalServerError) return } http.Redirect(w, r, "/login", http.StatusSeeOther) }
Definitivamente necesita una mejora y convenir en el código cómo debe ser llamada.
Además el token csrf_token tiene que ser envíado a los templates de manera apropiada.
csrf_token
Se ve todo bastante flaky:
Definitivamente necesita una mejora y convenir en el código cómo debe ser llamada.