エラー内容
Key "github.com/gin-gonic/contrib/sessions" does not exist
/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go:266 (0x984a0b)
(*Context).MustGet: panic("Key \"" + key + "\" does not exist")
/go/pkg/mod/github.com/gin-gonic/contrib@v0.0.0-20201101042839-6a891bf89f19/sessions/sessions.go:146 (0x984921)
Default: return c.MustGet(DefaultKey).(Session)
原因
“github.com/gin-contrib/sessions”
と
“github.com/gin-gonic/contrib/sessions”
のimportが混在してしまっていたようです。
僕の場合、以下のstoreを作成しているファイルでは”github.com/gin-contrib/sessions”をインポートしており、
import (
"github.com/gin-contrib/sessions"
"github.com/gin-contrib/sessions/cookie"
"github.com/gin-gonic/gin"
)
...
func router() *gin.Engine {
r := gin.Default()
store := cookie.NewStore([]byte("secret"))
r.Use(sessions.Sessions("mysession", store))
}
sessionをsetするファイルでは”github.com/gin-contrib/sessions”をインポートしておりました。
どちらかに揃えればエラーは解消されるはずです。
なお、”github.com/gin-gonic/contrib/sessions”の場合は、以下のようにsessions.NewCookieStoreを使用します。
r := gin.Default()
store := sessions.NewCookieStore([]byte("secret"))
r.Use(sessions.Sessions("mysession", store))
コメント