postman - 在 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 应用程序正在退役,而本机应用程序旨在假设该功能,我真的希望答案包含在本机应用程序中
谢谢!
解决方案
像这样的事情是否适合您进行检查:
if (_.keys(pm.cookies.toObject())[0] === "abc-auth"){
console.log("Found Cookie")
} else {
//Do something
}
它使用 Postman cookie 功能,但也使用Lodash 键功能(本机应用程序附带)它基本上假设第一个key
是您想要的 - 这可能是不正确的,因为它可能有几个键。
推荐阅读
- spartacus-storefront - 如果重定向的 URL 中没有指定语言,则重定向到默认语言 - Spartacus
- angular - Angular CDK - 滚动时覆盖附加到目标
- reactjs - 用 react-image-gallery 反应 jsfiddle
- firebase - Firestore 集合组更新文档
- bazel - 使用没有 `--compilation_mode opt` 标志的 bazel 构建 bazel 如何影响性能?
- windows - 带有 OFFSET 标签的汇编 PUSH 指令
- fortran - 在 Mac Big Sur 上写入标准输出时出现 gfortran 运行时错误
- list - 在 SwiftUI 中实现多个标题
- android - 即使添加了屏幕方向锁定,Android 屏幕方向
- javascript - 如何在 Typescript 中使用类型化变量作为具有相同名称的类型?