GoでCookieの操作をやってみたのでそこからの学びの記録
Cookieの再認識
- ブラウザに保存されるテキストファイル
- サーバーにデータを自動送信
- 有効期限を任意に設定できる
- JS以外も可(今回はGo)
GoでCookieを操作しよう
データの登録
今回はまとめて設定するのでリテラルで記述してます。
cookie := &http.Cookie{
Name: "hoge",
Value: "huga",
Path: "/",
}
Pathはcookieが有効なパスを明示します。
明記しない場合はその場のpathが設定されます。
今回は"/"で全ての場所で有効にしてます。
SetCookieでさっき定義したcookieを設定して完了です。
http.SetCookie(w, cookie)
最低限だとこれだけ。
もちろん他にもいろいろ設定できるので公式のリファレンスを見てみてください。
https://pkg.go.dev/net/http#Cookie
データの取得
cookie.go
func Handler(w http.ResponseWriter, r *http.Request) {
cookie, err := r.Cookie("hoge")
if err != nil {
log.Println("Cookie not found:", err)
}
log.Println("CookieValue:", cookie.Value)
}
errorのハンドリングはそれっぽくするために追加しときました
取り出す時はNameで呼んであげてください。
cookie, err := r.Cookie("hoge")
大体valueを使いたいのでそれはこう
cookie.value
これでどこでも扱えますね。
以上!
参考記事