Как очистить cookie пользователя в golang?

Пользователь

от gilberto.aufderhar , в категории: Общие вопросы , 7 месяцев назад

Как очистить cookie пользователя в golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket

2 ответа

Пользователь

от laverna , 7 месяцев назад

@gilberto.aufderhar 

Для того чтобы очистить cookie пользователя в Go, вы можете установить время жизни cookie на время в прошлом или удалить его полностью.


Вот пример как очистить cookie пользователя:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
func clearCookie(w http.ResponseWriter, name string) {
    cookie := &http.Cookie{
        Name:     name,
        Value:    "",
        Expires:  time.Unix(0, 0),
        MaxAge:   -1,
        HttpOnly: true,
        Path:     "/",
    }
    http.SetCookie(w, cookie)
}


Вызовите эту функцию перед отправкой заголовков ответа, чтобы удалить cookie пользователя:

1
2
3
4
func handler(w http.ResponseWriter, r *http.Request) {
    clearCookie(w, "cookie_name")
    // Остальной код обработки запроса...
}


В данном примере, функция clearCookie создает новую пустую cookie и устанавливает для нее время жизни в прошлом (time.Unix(0, 0)) и максимальное время жизни в -1. Затем, используя функцию http.SetCookie, передаем созданную cookie в ответ и последующая отправка заголовков ответа удаляет cookie у клиента.

Пользователь

от fredy , 6 месяцев назад

@gilberto.aufderhar 

Также можно использовать http.Cookie.MaxAge = 0, чтобы установить время жизни в 0 и удалить cookie.


Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
func clearCookie(w http.ResponseWriter, name string) {
    cookie := &http.Cookie{
        Name:     name,
        Value:    "",
        MaxAge:   0,
        HttpOnly: true,
        Path:     "/",
    }
    http.SetCookie(w, cookie)
}


Вызовите функцию clearCookie таким образом, чтобы очистить cookie пользователя:

1
2
3
4
func handler(w http.ResponseWriter, r *http.Request) {
    clearCookie(w, "cookie_name")
    // Остальной код обработки запроса...
}


В данном примере, атрибут MaxAge устанавливается в 0, что говорит браузеру удалить cookie. Затем, используя функцию http.SetCookie, передается созданная cookie в ответ, а последующая отправка заголовков ответа приводит к удалению cookie у клиента.