iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 9
0
Modern Web

遺留系統重構 - 從 MEAN Stack 轉移到 go-vue-postgresql系列 第 9

Day 9 : 線索 - 沿路的小餅乾 cookie

  • 分享至 

  • xImage
  •  

http 是無狀態的,每個連線都是獨立的,
為了識別 Client 的狀況,在 Client 端留下訊息,
在每次的連線中,讓 Server 可以取得 Client 的狀態,

在 Golang 裡處理 cookie

package main

import (
	"fmt"
	"net/http"
)

func setCookie(w http.ResponseWriter, r *http.Request) {
	c := http.Cookie{
		Name:     "cookie_name",
		Value:    "cookie_status",
		HttpOnly: true,
	}
	http.SetCookie(w, &c)
}

func getCookie(w http.ResponseWriter, r *http.Request) {
	c, err := r.Cookie("cookie_name")
	if err != nil {
		fmt.Fprintln(w, "Cannot get cookie")
	}
	cs := r.Cookies()
	fmt.Fprintln(w, c)
	fmt.Fprintln(w, cs)
}

func main() {
	server := http.Server{
		Addr: "127.0.0.1:8080",
	}
	http.HandleFunc("/cookie/set", setCookie)
	http.HandleFunc("/cookie/get", getCookie)
	server.ListenAndServe()

}

在方法 setCookie 中,先用 http.Cookie 產生 Cookie,
使用 http.SetCookie 將 Cookie 寫進連線中

而在方法 getCookie 中使用 http.Request.Cookie 取得特定的 Cookie
使用 http.Request.Cookies 取得連線上全部的 Cookie


上一篇
Day 8 : 設定 - 讀取設定檔
下一篇
Day 10 : 令牌 - 透過 OAuth 進行驗證並登入
系列文
遺留系統重構 - 從 MEAN Stack 轉移到 go-vue-postgresql30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言