javascript - 无法销毁 Express 创建的 JavaScript 中的 cookie

标签 javascript node.js express cookies

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

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"

当/如果访问 token 不再有效,我想销毁 cookie。因此,在客户端上,如果服务器无法使用该访问 token 发出成功的请求,我将执行以下操作:

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

由于某种原因,它会删除 cookie 的“名称”部分,但不会删除访问 token 。我怎样才能完全销毁cookie?

我看到其他关于路径应该如何相同或者 httpOnly 设置为 true 会阻止 javascript 改变 cookie 的评论,但我已经解决了所有这些问题,并且 token 仍然保留在 cookie 中。

最佳答案

使用下面的代码:

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

关于javascript - 无法销毁 Express 创建的 JavaScript 中的 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43344201/

相关文章:

javascript - 如何在 ng-repeat 中对 JSON 数据进行排序?

javascript - Angular 2跨应用程序(根组件)通信

javascript - 使用 CSS 设置 SVG 样式

node.js - Mongoose :MongoError 没有地理搜索索引

javascript - 使用 pug 文件在 html 中显示 JS 文件中的变量

javascript - 以字符串形式检索整个 json 数组

Node.js 生成具有特定通用名称的 LetsEncrypt.org SSL 证书

javascript - 如何正确关闭 node-express 服务器?

javascript - 如何在 Angular JS 中使用带有 Http 请求的服务

javascript - Node escpos LIBUSB_ERROR_NOT_SUPPORTED