首页 > 解决方案 > 在 Postman Native App Pre-Request 脚本中访问 Cookie

问题描述

抱歉,如果之前被问到。尝试快速搜索并找不到。

情况 :

api 使用身份验证令牌作为 cookie 名称“abc-auth”,当我点击 /login 端点时返回。它在响应中作为 set-cookie 标头返回,本机应用程序很乐意接受该标头并在 ui 中设置为域 cookie

如果cookie不存在,我希望基本上作为预请求步骤点击登录端点,但如果我们已经通过身份验证,则不要点击它。所以我们只为 20 个请求登录一次,而不是 20 次

我曾希望这样做访问 pm.cookies 对象,我相信该对象现在已完全融入本机应用程序参考 - > https://www.getpostman.com/docs/v6/postman/scripts/postman_sandbox_api_reference 所以希望做这样的事情

console.log(pm.cookies.toObject())

if (pm.cookies.has("abc-auth")){
    console.log("Found Cookie");
} else {
//send the request
}

预期:
它在第一次登录时运行,然后下次找到 cookie 并继续

实际:
它永远找不到 cookie。打印出 cookie 列表会发现一个空数组。我似乎无法从脚本中检查 cookie。

有人知道我在做什么错吗?很多文档都提到了拦截器,但是由于 chrome 应用程序正在退役,而本机应用程序旨在假设该功能,我真的希望答案包含在本机应用程序中

谢谢!

标签: postman

解决方案


像这样的事情是否适合您进行检查:

if (_.keys(pm.cookies.toObject())[0] === "abc-auth"){
    console.log("Found Cookie")
} else {
    //Do something
}

它使用 Postman cookie 功能,但也使用Lodash 键功能(本机应用程序附带)它基本上假设第一个key是您想要的 - 这可能是不正确的,因为它可能有几个键。


推荐阅读