1

我的响应中有一个 cookie 列表,其中 secure=true 不能被 pm.cookies.jar() 访问

这导致了一个问题,我想清除域下的所有 cookie,而安全 cookie 上的以下代码不会发生这种情况。

const jar = pm.cookies.jar();
var domain = pm.environment.get("envUrl");    
jar.clear(domain, function (error){
    if(error)
    {
        console.log("error",error);
    }
});

运行此脚本后,我可以看到未从管理 cookie 窗口中清除安全 cookie。

使用:Windows 版 Postman - 版本 7.16.1 - win32 10.0.14393 / x64

例子: 在此处输入图像描述

4

1 回答 1

0

我想我有这个案例的解决方法,直到错误解决。

postman.getResponseCookie("Cookie name");

这仍然可以使用 secure=true 访问 cookie,并使用 pm.cookies.jar() 和 set(),我设置了与 Secure cookie 同名的 cookie。

这会从 cookie 集中删除 Secure 标志。现在可以使用 pm.cookies.jar() 对该 cookie 使用所有操作(获取、取消设置、清除)。

请注意,set() 创建一个带有 hostOnly=true 的 cookie,因此只有当请求 URL 与设置的 cookie 具有相同的主机时,才能访问设置的 cookie。

var responseCookie= postman.getResponseCookie("CookieName");
responseCookie= responseCookie.value.toString();

const cookieJar = pm.cookies.jar();
var domain = pm.environment.get("envUrl");
cookieJar.set(domain,"CookieName",responseCookie,function(error,cookie){});

cookieJar.clear(domain, function (error){});
于 2020-02-05T13:49:58.827 回答