質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Echo(フレームワーク)

Echoは、Go言語で作られたフレームワーク。非常に軽量で、小~中規模のアプリ構成を想定した仕様になっています。公式ドキュメントが用意されており、初心者でも始めやすい点が特徴です。

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

セッション

Sessionはクライアントがサーバに送ったすべてのリクエストのことを指します。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

Q&A

0回答

724閲覧

Go言語でセッション保存した後、全ての画面でそれを参照したい

mitsukuro

総合スコア3

Echo(フレームワーク)

Echoは、Go言語で作られたフレームワーク。非常に軽量で、小~中規模のアプリ構成を想定した仕様になっています。公式ドキュメントが用意されており、初心者でも始めやすい点が特徴です。

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

セッション

Sessionはクライアントがサーバに送ったすべてのリクエストのことを指します。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

0グッド

1クリップ

投稿2022/06/29 11:00

Go言語でセッション保存した後、全ての画面でそれを参照したい

html/templateを使って、MVCのような形でシステムを作成中です。
golangでログイン機能を実装しています。
とりあえずセッションの保存に関しては、下記のような実装で出来ました。

import ( "net/http" "github.com/gorilla/sessions" "github.com/labstack/echo-contrib/session" "github.com/labstack/echo/v4" ) func Login(c echo.Context) error { sess, _ := session.Get("session", c) sess.Options = &sessions.Options{ Path: "/", MaxAge: 86400, HttpOnly: true, } sess.Values["foo"] = "bar" sess.Values["auth"] = true sess.Save(c.Request(), c.Response()) return c.String(http.StatusOK, "セッション保存成功") }

これで、セッション保存されてるか否かは、とある画面一つであれば下記のように確認ができるかと思います。

func LoginTest(c echo.Context) error { sess, err := session.Get("session", c) if err != nil { return c.String(http.StatusInternalServerError, "Error") } if b, _ := sess.Values["auth"]; b != true { return c.String(http.StatusUnauthorized, "401") } else { return c.String(http.StatusOK, sess.Values["foo"].(string)) } }

session.Get("session", c)で取れるので、それをテンプレートエンジンに渡すなりでなんとかなりそうなのですが、
例えばLaravel等はbladeにて、@auth とかのディレクティブでログインしてるか否かがわかるかと思います。
Goの場合はどのようにすれば良いでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問