0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GoでCookieを設定したり受け取ったり

Last updated at Posted at 2023-03-26

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

これでどこでも扱えますね。

以上!

参考記事

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?