使用邮递员存储和发送 jwt httponly cookie 和 csrf 令牌
storing and sending jwt httponly cookie, and csrf token with postman
我有一个 flask API,带有 jwt 身份验证,在 httponly cookie 上。我安装了拦截器,将域(使用 HTTPS)添加到列表中,并启用了请求和 cookie 拦截。
但是,
如何让邮递员发送我从登录到服务器获得的cookie?通常,对于一个简单的前端,它只是发生了,所以我没有考虑它。
我在邮递员文档中找到的所有方法,包括使用令牌指定值,但我没有它,因为我无法访问 httponly cookie。 (或者我可以吗?)
我必须访问 cookies 吗?能不能像前端发送请求一样自动完成?
任何指导将不胜感激
经过一整晚的研究,我做了两件事来让它发挥作用——
在登录请求中,我添加了一个“测试”脚本(邮递员中的post-request脚本),代码如下:
const csrf_token = pm.response.headers.get("set-cookie");
const edited_token = csrf_token.split(/[;=]/)[1];
pm.environment.set("X-CSRF-TOKEN", edited_token);
console.log(csrf_token.split(/[;=]/)[1]);
首先,我从响应中获取了cookie,然后使用正则表达式仅分隔令牌值,并将其设置为环境变量。这样,我可以稍后将其添加为 header,以访问受保护的 URL。
第二步是在任何带有受保护 URL 的请求中添加 pre-scrit -
在 pre-request 选项卡中,我添加了以下内容:
pm.request.headers.add({
键:'X-CSRF-TOKEN',
值:pm.environment.get("X-CSRF-TOKEN")
});
它只添加了我之前从“X-CSRF-TOKEN”环境变量中获取的相同标记,并将其设置为 header。
任务完成 :)
我希望它能帮助遇到此问题的其他人
我有一个 flask API,带有 jwt 身份验证,在 httponly cookie 上。我安装了拦截器,将域(使用 HTTPS)添加到列表中,并启用了请求和 cookie 拦截。 但是, 如何让邮递员发送我从登录到服务器获得的cookie?通常,对于一个简单的前端,它只是发生了,所以我没有考虑它。 我在邮递员文档中找到的所有方法,包括使用令牌指定值,但我没有它,因为我无法访问 httponly cookie。 (或者我可以吗?)
我必须访问 cookies 吗?能不能像前端发送请求一样自动完成? 任何指导将不胜感激
经过一整晚的研究,我做了两件事来让它发挥作用—— 在登录请求中,我添加了一个“测试”脚本(邮递员中的post-request脚本),代码如下:
const csrf_token = pm.response.headers.get("set-cookie");
const edited_token = csrf_token.split(/[;=]/)[1];
pm.environment.set("X-CSRF-TOKEN", edited_token);
console.log(csrf_token.split(/[;=]/)[1]);
首先,我从响应中获取了cookie,然后使用正则表达式仅分隔令牌值,并将其设置为环境变量。这样,我可以稍后将其添加为 header,以访问受保护的 URL。 第二步是在任何带有受保护 URL 的请求中添加 pre-scrit - 在 pre-request 选项卡中,我添加了以下内容: pm.request.headers.add({ 键:'X-CSRF-TOKEN', 值:pm.environment.get("X-CSRF-TOKEN") }); 它只添加了我之前从“X-CSRF-TOKEN”环境变量中获取的相同标记,并将其设置为 header。 任务完成 :) 我希望它能帮助遇到此问题的其他人