Karate 如何使用空手道框架从场景1响应中获取csrf令牌?

Karate 如何使用空手道框架从场景1响应中获取csrf令牌?,karate,Karate,我有一个应用程序api url,它已通过Basicauth作为后台传递。使用它,我需要一个csrf令牌。我试过用responsecookies。什么都没发生 您能告诉我如何从特定的api获取csrf令牌吗。我收到的是实际的应用程序响应,但不是cookies。请阅读文档并浏览演示示例。这取决于反应。有两种可能,cookie(或标头)或响应体本身(纯文本或JSON/XML) 因此,您可以提取它,然后将其存储为变量,并使用它为所有将来的响应构建标题 请参阅: 在本例中,令牌恰好是整个响应字符串。嗨,彼

我有一个应用程序api url,它已通过Basicauth作为后台传递。使用它,我需要一个csrf令牌。我试过用responsecookies。什么都没发生


您能告诉我如何从特定的api获取csrf令牌吗。我收到的是实际的应用程序响应,但不是cookies。

请阅读文档并浏览演示示例。这取决于反应。有两种可能,cookie(或标头)或响应体本身(纯文本或JSON/XML)

因此,您可以提取它,然后将其存储为变量,并使用它为所有将来的响应构建标题

请参阅:


在本例中,令牌恰好是整个
响应
字符串。

嗨,彼得,谢谢你的快速响应。我尝试了相同的方法,但我不知道令牌和签名需要传递什么值?此外,由于存在sso应用程序,因此没有登录页面。代币里有什么?我尝试将其输出为null。函数(creds){var temp=creds.username+':'+creds.password;var Base64=Java.type('Java.util.Base64');var encoded=Base64.getEncoder().encodeToString(temp.bytes);var token=karate.get('token');return'Basic'+encoded+token;}@user1980552抱歉,我无法帮助您超越这一点。我认为最好的选择是与团队中的人交谈,最好是了解服务器端API详细信息的人。有任何gitter类型的社区可以直接聊天吗?在JS文件传递函数(creds){var temp=creds.username+':'+creds.password;var Base64=Java.type('Java.util.Base64'));var encoded=Base64.getEncoder().encodeToString(临时字节);var token=karate.get('Cookie');在功能背景中返回'Basic'+encoded+token;}:*configure ssl=true*header Authorization=call read('karate-config.js'){用户名:'xxxxxx',密码:'xxxx'}*header Accept='application/json'*def uuid=function(){return java.util.UUID.randomUUID()+''}给定路径“signin”,“token”,当方法获取状态200时,报头X-CSRF-token=response*打印“CSRF”,X-CSRF-token
Given path 'signin', 'token'
When method get
Then status 200
And header X-CSRF-TOKEN = response