Промежуточное ПО сеансов эхо не сохраняется
Я пытаюсь использовать промежуточное программное обеспечение для веб-фреймворка echo. Промежуточное программное обеспечение по сути является просто оболочкой для горилл / сессий, предназначенных для работы с 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
возвращается StatusOK
как и ожидалось, но /whoami
всегда возвращается null
, Почему имя не сохраняется в сеансе?
1 ответ
Решение
Проблема вызвана настройками session.Option.Secure = true
,
Я тестирую локально и не использую HTTPS
поэтому файл cookie не устанавливается.