Cookies

Cookies

Http cookie 是服务器发送到用户web 浏览器的一小块数据。 浏览器可以存储这些数据并将其发送回同一个服务器,甚至在重新启动浏览器之后(不像浏览器会话)。
Cookies 通常用于保存用户状态(比如用户是否登录)。

设置一个 Cookie

func MyHandler(c buffalo.Context) error {
  // ...
  c.Cookies().Set("user_id", user.ID, 30 * 24 * time.Hour)
  // ...
}

设置一个带有过期的 Cookie

func MyHandler(c buffalo.Context) error {
  // ...
  exp := time.Now().Add(365 * 24 * time.Hour) // expire in 1 year
  c.Cookies().SetWithExpirationTime("user_id", user.ID, exp)
  // ...
}

使用 Path 设置 Cookie

func MyHandler(c buffalo.Context) error {
  // ...
  c.Cookies().SetWithPath("user_id", user.ID, "/user")
  // ...
}

高级设置 Cookie 方式

import "net/http"
func MyHandler(c buffalo.Context) error {
  // ...
  ck := http.Cookie{
    Name:    "token",
    Value:   token,
    Path:    "/",
    Expires: time.Now().Add(30 * 24 * time.Hour), // expire in 1 month
  }

  http.SetCookie(c.Response(), &ck)
  // ...
}

获取Cookie

func MyHandler(c buffalo.Context) error {
  value, err := c.Cookies().Get("user_id")
  if err != nil {
    return err
  }
  return c.Render(200, r.String(value))
}

删除 Cookie

func MyHandler(c buffalo.Context) error {
  c.Cookies().Delete("user_id")
  // ...
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
caoayu
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!