

<http://www.gorillatoolkit.org/pkg/sessions>  
<https://github.com/gorilla/sessions>

Golangのセッション管理でgorillaを使っています。  
持っているセッションを全て破棄してから新しくセッションにデータを保存したいです。  
その際にセッションを破棄する方法がわからないので知っている方がいたら教えてください。

[code]

    func clearSession1(session *sessions.Session) {
        session.Options = &sessions.Options{MaxAge: -1, Path: "/"}
    }
    /*
      １つ目のやり方だとsessionはすぐに消されない
      リクエストの処理が終わると消されている
    */
    
    func clearSession2(session *sessions.Session) {
        session.Values = nil
    }
    /*
      ２つ目のやり方だとセッションはすぐに消せるが再度セッションに保存するときに以下のエラーが起こる
      panic: runtime error: assignment to entry in nil map
    */
    
[/code]


CC BY-SA 3.0
2015-12-24T01:48:12.980
20326
2016-04-18T06:38:25.070
8558
question
go
gorillaでセッションを破棄（削除）する方法を知りたい


以下のように、`session.Options` を変更した後、  
`session.Save()` する事でご希望の動作になるかと思います。

[code]

    func clearSession1(w http.ResponseWriter, r *http.Requset, session *sessions.Session) {
        session.Options = &sessions.Options{MaxAge: -1, Path: "/"}
        session.Save(r, w)
    }
    
[/code]


CC BY-SA 3.0
2016-02-18T05:06:35.803
22224
2016-02-18T05:06:35.803
2226
20326
answer