Я использую аутентификацию .NetCore и Cookie.Управление учетными записями (вход в систему, выход из системы и т. Д.) Осуществляется через API, а не через интерфейс Identity.Насколько я понимаю, сервер на самом деле не может ничего отправить клиенту, чтобы фактически удалить куки, скорее, мне нужно было бы «истечь» куки на сервере и вернуть его клиенту.
Так что здесьмои настройки
Startup.cs
services.AddAuthentication("mycookie")
.AddCookie("mycookie", options => {
options.Cookie.HttpOnly = true;
options.SlidingExpiration = true;
options.ExpireTimeSpan = TimeSpan.FromMinutes(30);
options.Cookie.Expiration = TimeSpan.FromMinutes(30);
});
В моем ApiController
у меня есть следующее:
AccountController.cs
[HttpGet("signout")]
public async Task<IActionResult> SignOut()
{
var temp = new AuthenticationProperties()
{
ExpiresUtc = DateTime.Now.AddDays(-1)
}
await HttpContext.SignOutAsync("mycookie",temp);
return Ok();
}
Тем не менее, мой cookie никогда не заканчивается, когда я звоню signout
.Я заметил в консоли разработчика браузера, cookie говорит Expires on: Session
.Я бы ожидал увидеть там дату / время.
Как мне избавиться от куки или закончить его при вызове?