jquery 使用Javascript删除会话cookie

b5buobof  于 2022-11-22  发布在  jQuery
关注(0)|答案(2)|浏览(170)

我 正在 开发 删除 会话 cookie 的 功能
下面 是 源 代码 :

<script language="javascript">
window.onload = function ()
{
   /* $.cookie('!lithiumSSO:tomtom.stage', null);
    $.cookie('LiSESSIONID', null);*/
        delete_cookie('LiSESSIONID');
         delete_cookie('!lithiumSSO:tomtom.stage');

};
function delete_cookie ( cookie_name )
    {
        var cookie_date = new Date ( );  // current date & time
        cookie_date.setTime ( cookie_date.getTime() - 1 );
        document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
        alert('name:' +cookie_name);
        jQuery.cookie('LiSESSIONID', null); //Try to using jQuery
    }

</script>

中 的 每 一 个
我 可以 设置 一 个 弹出 窗口 显示 name:LiSESSIONID=; expires=Wed, 02 Feb 2011 10:56:52 GMT 。 这 是 一 个 小时 后 。 但是 , 当 我 使用 firecocookies , 我 看到 这个 cookie 仍然 存在 :

LiSESSIONID
    
7A10E3453B01DDFF934AC7AF71EAFEC3
    forums.lithiumstage.tomtom.com  
43 B
    
/
    
Session
    
HttpOnly

格式
有人 知道 为什么 我 不能 杀死 cookie 吗 ? jQuery 函数 状态 说 未 定义 , 即使 我 加载 了 函数 。

vwoqyblh

vwoqyblh1#

原因是设置了HttpOnly标志。这意味着只有服务器端代码才能修改此Cookie。
请参阅:http://www.owasp.org/index.php/HTTPOnly

vsaztqbk

vsaztqbk2#

cookie必须在服务器端删除。我不知道你用的是什么语言,但如果是node + express,它会像这样:

res.clearCookie('LiSESSIONID', {
  httpOnly: true,
  sameSite: true,
  domain: 'YOUR DOMAIN HERE',
});

HttpOnly使用起来很有趣,因为它很安全,并且可以防止从浏览器www.example.com对其进行更改https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#restrict_access_to_cookies
如果您想在浏览器中删除它,请在创建cookie时删除httpOnly(我不建议这样做)。

相关问题