@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 у клиента.
@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 у клиента.