如何从Postman Rest Client发送Spring CSRF令牌?

我在spring框架中有csrf保护。因此,在每个请求中,我都从ajax调用的标头中发送csrf令牌,这非常正常。

<meta name="_csrf" content="${_csrf.token}"/>

<meta name="_csrf_header" content="${_csrf.headerName}"/>

var token = $("meta[name='_csrf']").attr("content");

var header = $("meta[name='_csrf_header']").attr("content");

在ajax中

beforeSend: function(xhr) {

xhr.setRequestHeader(header, token),

xhr.setRequestHeader("username", "xxxx1"),

xhr.setRequestHeader("password", "password")

}

我不知道要生成csrf令牌并将其包含在Postman Rest Client的标头部分中吗?您能帮我从Postman Rest Client发送csrf令牌吗?

回答:

一致地执行此操作的最简单方法,因此你不必每次都获得令牌:

注意:你需要安装PostMan Interceptor并激活它才能访问浏览器的cookie

  1. 创建一个新环境,以便可以存储环境变量

  2. 使用测试创建登录方法以将XSRF cookie存储在环境变量中,在“测试”选项卡中将此代码发布

//Replace XSFR-TOKEN with your cookie name

var xsrfCookie = postman.getResponseCookie("XSRF-TOKEN");

postman.setEnvironmentVariable("xsrf-token", xsrfCookie.value);

编辑 对于使用5.5.2或更高版本邮递员的任何人,你还必须解码Cookie,并且他们还提供了获取Cookie的替代方法,如@Sacapuces指出的那样

pm.environment.set("xsrf-token", decodeURIComponent(pm.cookies.get("XSRF-TOKEN")))

现在,你将拥有一个带有xsrf-token的环境变量。

  1. 保存登录方式

  2. 创建你要创建的新帖子,并在标题中添加XSRF-Token-Header密钥,并在把手中添加环境变量以访问它{{}}

  3. 现在,在运行新请求之前,请确保你运行登录名,该登录名将存储环境变量,然后在你运行实际请求时将其自动追加。

以上是 如何从Postman Rest Client发送Spring CSRF令牌? 的全部内容, 来源链接: utcz.com/qa/401266.html

回到顶部