Неверный адрес памяти с http.SetCookie - PullRequest
0 голосов
/ 24 ноября 2018

Я работаю над пакетом аутентификации, который называется persona.

Все работает нормально, кроме одного, когда я пытаюсь установить 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 Ответ

0 голосов
/ 24 ноября 2018

Я думаю, что проблема может быть не в объекте http.Cookie, а, возможно, в объекте ResponseWriter (поскольку ResponseWriter - это интерфейс).Для отладки попробуйте проверить его на nil перед установкой Cookie.Если это nil, вам, вероятно, придется поискать стек из «Зарегистрируйся», чтобы выяснить, почему - возможно, он уже был закрыт.

...