Я пытаюсь использовать промежуточное программное обеспечение сеансов для эхо-фреймворка .Промежуточное программное обеспечение - это просто оболочка для горилл / сессий , специально предназначенная для работы с echo.
Я просто скопировал пример, приведенный в документации, и немного его расширил.
e := echo.New()
e.Use(session.Middleware(sessions.NewCookieStore([]byte("Secret"))))
// Add the name "Steve" to the session
e.GET("/login", func(c echo.Context) error {
sess, err := session.Get("session", c)
if err != nil {
return err
}
sess.Options = &sessions.Options{
Path: "/",
MaxAge: 0,
HttpOnly: false,
Secure: true,
}
sess.Values["name"] = "Steve"
sess.Save(c.Request(), c.Response())
return c.NoContent(http.StatusOK)
})
// Reply with the name saved in the session
e.GET("/whoami", func(c echo.Context) error {
sess, err := session.Get("session", c)
if err != nil {
return err
}
return c.JSON(http.StatusOK, sess.Values["name"])
})
Я ожидаю сначала посетить /login
, чтобы сохранить имя в сеансе, а затем посетить /whoami
и получить имя "Steve"
.
/login
return StatusOK
как и ожидалось, но /whoami
всегда возвращает null
.Почему имя не сохраняется в сеансе?