6
私のレールアプリは、認可のためにユーザーの資格情報を保存するためにセッションを使用します。 Goコードでサインインして、ユーザーセッションが必要な操作を実行しようとしています。サインイン時にユーザーセッションを取得して、次のリクエストに渡す必要がありますか?どうすればそれを処理できますか?ゴールンでセッション値を取得
私のレールアプリは、認可のためにユーザーの資格情報を保存するためにセッションを使用します。 Goコードでサインインして、ユーザーセッションが必要な操作を実行しようとしています。サインイン時にユーザーセッションを取得して、次のリクエストに渡す必要がありますか?どうすればそれを処理できますか?ゴールンでセッション値を取得
Goの標準ライブラリには、HTTPセッションマネージャが用意されていません。だからあなたは自分で書くか、他の人が書いたものを使う必要があります。
いくつかの例: - :
通常のHTTPセッションが管理されている
http.Request
)から直接取得することができます。 Request.Cookie()
である。 「リクエストチェーン」を介してセッションを「パス」する必要はないと言われていますが、すべてのハンドラはhttp.Request
を持つだけでアクセスできます。例えば
それは次のように行うことができますgithub.com/icza/session
を使用して:
func MyHandler(w http.ResponseWriter, r *http.Request) {
sess := session.Get(r)
if sess == nil {
// No session (yet)
} else {
// We have a session, use it
}
}
、それは似ています:
var store = sessions.NewCookieStore([]byte("something-very-secret"))
func MyHandler(w http.ResponseWriter, r *http.Request) {
session, err := store.Get(r, "session-name")
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
// Use session
}