Когда вы смотрите на документацию, появляется следующее:
pub fn remove(&mut self, cookie: Cookie<'static>)
[−]
Removes cookie from this collection and generates a "removal" cookies to send to the client on response. For correctness, cookie must contain the same path and domain as the cookie that was initially set. Failure to provide the initial path and domain will result in cookies that are not properly removed.
A "removal" cookie is a cookie that has the same name as the original cookie but has an empty value, a max-age of 0, and an expiration date far in the past.
Это именно то, что происходит, когда вы смотрите заголовок Set-Cook ie. Проблема, с которой я столкнулся, заключалась в том, что повар удаления ie был установлен в другом домене, чем исходный повар ie. Убедившись в том, что повар удаления ie был установлен в том же домене, повар ie будет сброшен правильно.
Создать повар ie:
let domain = env!("DOMAIN", "DOMAIN must be set");
let app_env = env!("APP_ENV", "APP_ENV must be set");
let on_production = app_env == "production";
let cookie = Cookie::build(key, value)
.domain(domain.to_string())
.path("/")
.secure(on_production)
.max_age(Duration::days(365))
.http_only(true)
.finish();
cookies.add_private(cookie);
Удалить повар ie :
let domain = env!("DOMAIN", "DOMAIN must be set");
let app_env = env!("APP_ENV", "APP_ENV must be set");
let on_production = app_env == "production";
let cookie = Cookie::build(name, "")
.domain("lvh.me")
.path("/")
.secure(on_production)
.max_age(Duration::days(365))
.http_only(true)
.finish();
cookies.remove_private(cookie);