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 協議》,轉載必須註明作者和本文連結