无法在Express创建的JavaScript中销毁cookie

时间:2017-04-11 11:07:27

标签: javascript node.js express cookies

对于OAuth流程,我在服务器(Express)上的cookie中设置访问令牌,如下所示:

res.cookie('name' , 'myname', {httpOnly: false, path:'/'});
res.cookie('access_token', accessToken);

// on the client
console.log(document.cookie); // displays "name=myname; access_token=12345"

当/如果访问令牌不再有效,我想销毁cookie。所以在客户端,如果服务器无法使用该访问令牌成功请求,我这样做:

document.cookie = 'name=myname; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/';
console.log(document.cookie) // displays "access_token=12345"

因此,出于某种原因,它删除了"名称" cookie的一部分,但不是访问令牌。我怎样才能完全破坏cookie?

我看到其他关于路径应该是相同的还是httpOnly设置为true的评论会阻止javascript改变cookie,但是我已经解决了所有问题,而且令牌仍然存在于cookie中。

2 个答案:

答案 0 :(得分:1)

使用以下代码:

var delete_cookie = function(name) {
    document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;';
};
delete_cookie('name');
delete_cookie('access_token');

答案 1 :(得分:0)

要设置Cookie,您可以使用

Receipt orderResult = com.softlayer.api.service.billing.Order.service(client).placeOrder(subnet, Boolean.FALSE);

要删除Cookie,您可以使用

res.cookie("key", value);