Ir al contenido

Cookies

Una cookie es una pequeña pieza de datos que un servidor envía al navegador, que el navegador almacena y vuelve a enviar en requests posteriores. Las cookies permiten que los sitios web recuerden información con estado, como un carrito de compras, el estado de autenticación o valores de formularios ingresados previamente.

Echo usa el tipo estándar http.Cookie de Go para agregar y obtener cookies desde echo.Context en un handler.

AtributoOpcional
NameNo
ValueNo
Path
Domain
Expires
Secure
HttpOnly
func writeCookie(c *echo.Context) error {
cookie := new(http.Cookie)
cookie.Name = "username"
cookie.Value = "jon"
cookie.Expires = time.Now().Add(24 * time.Hour)
c.SetCookie(cookie)
return c.String(http.StatusOK, "write a cookie")
}
  • Crea la cookie con new(http.Cookie).
  • Establece atributos en los campos de http.Cookie.
  • Llama a c.SetCookie(cookie) para agregar un header Set-Cookie a la response.
func readCookie(c *echo.Context) error {
cookie, err := c.Cookie("username")
if err != nil {
return err
}
fmt.Println(cookie.Name)
fmt.Println(cookie.Value)
return c.String(http.StatusOK, "read a cookie")
}
  • Lee una cookie por nombre con c.Cookie("username").
  • Accede a sus atributos mediante los campos de http.Cookie.
func readAllCookies(c *echo.Context) error {
for _, cookie := range c.Cookies() {
fmt.Println(cookie.Name)
fmt.Println(cookie.Value)
}
return c.String(http.StatusOK, "read all the cookies")
}