Неверный адрес памяти с 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вам, вероятно, придется поискать стек из "Зарегистрируйся", чтобы выяснить, почему - возможно, он уже был закрыт.

Другие вопросы по тегам