You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# Web API存JWT到Cookie后前端无法删除仅POSTMAN可清除问题求助

问题根因

你在调用Response.Cookies.Delete()时未传入与Cookie创建时完全一致的安全属性配置,浏览器对Cookie删除的校验规则远严格于Postman:只有要删除的Cookie的键名、Secure、SameSite、HttpOnly、Domain、Path所有属性和创建时完全匹配,才会执行删除操作。你创建Cookie时指定了SameSite = SameSiteMode.None、Secure = true、HttpOnly = true,删除时未传入这些配置,浏览器会判定为匹配失败,保留原有Cookie。

修复方案

修改登出接口代码,删除Cookie时传入和登录接口完全一致的CookieOptions:

[Route("logout")]
[HttpGet]
public async Task<IActionResult> logout()
{
    Response.Cookies.Delete("jwt", new CookieOptions
    {
        HttpOnly = true,
        SameSite = SameSiteMode.None,
        Secure = true
    });
    return Ok(new { message = "Success" });
}
额外校验项

如果修改后仍未生效,可以排查以下两点:

  • 若你创建Cookie时显式指定了Domain或Path参数,删除时的CookieOptions也需要补充完全相同的Domain、Path值
  • 确认后端CORS配置已开启AllowCredentials(),且前端请求已携带credentials: 'include'(你当前的前端代码已满足该要求)

内容的提问来源于stack exchange,提问作者Sami

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 17:36:10