Неверный адрес памяти с http.SetCookie
Я работаю над пакетом аутентификации под названием персона.
Все работает нормально, кроме одного, когда я пытаюсь установить cookie, у меня неверный адрес памяти.
func Signup(user interface{}, username string, w http.ResponseWriter) error {
key := []byte(randStringBytes(32))
encrypted, err := encrypt(key, username)
if err != nil {
return err
}
expiration := time.Now().Add(365 * 24 * time.Hour)
cookie := http.Cookie{Name: "session-persona", Value: encrypted, Expires: expiration}
http.SetCookie(w, &cookie)
userSession := Session{Username: username, Key: key, Token: encrypted}
database.Create(&userSession)
database.Create(user)
return nil
}
Когда я удаляю http.SetCookie(w, &cookie)
все отлично работает Есть ли у вас какие-либо идеи?
1 ответ
Решение
Я думаю, что проблема может быть не в http.Cookie
объект, но, возможно, ResponseWriter
объект (с ResponseWriter
это интерфейс). Для отладки попробуйте проверить его на nil
перед установкой Cookie. Если это nil
вам, вероятно, придется поискать стек из "Зарегистрируйся", чтобы выяснить, почему - возможно, он уже был закрыт.