oauth-2.0 在空手道框架中,如何检索从SHA256加密库中生成的APIGEE令牌?

xxls0lw8  于 2022-10-31  发布在  Pig
关注(0)|答案(1)|浏览(144)

在我当前使用Karate框架进行测试的应用程序中,我遇到了两个API--令牌和扩展,它们提供了访问后端服务的APIGEE令牌值。
API-1:令牌API
输入有效负载(表单-数据)-

grant-type: authorization_code
code: *8-digit-characters*
redirect_uri: https://../oauth-code-callback
code-verifier:*28-digit-characters*
client_id: *Unique-Client-Key*

响应-{"access-token":"..."}
API-2:扩展API
输入有效负载(JSON)-{"access-token":"..."}
响应-"APIGEE_Token"
看看API-1中的输入负载,代码和代码验证器是使用typescript生成的SHA-256加密值。现在,为了生成最终的APIGEE令牌,我需要使用Karate中的相同typescript库生成代码和代码验证器值。是否有这样的可能性?否则,请建议是否有替代方法来满足我的要求。提前感谢!

noj0wjuj

noj0wjuj1#

首先,我建议你检查一下令牌是否可以使用一些标准算法生成,如果可以,你可以用Java或JS重写它们。https://stackoverflow.com/search?q=%5Bkarate%5D+jwt
另外,这里还有两个额外的创造性解决方案:

  1. Karate使用Graal JS引擎,所以如果你能得到你所需要的例程的纯JS等价物,就有可能通过阅读.js文件将其加载到Karate中。例如,read()(或karate.read())可以返回一个JS函数,然后你可以在测试流中调用它。
    1.如果你已经安装了node /npm,你可以写一个命令行程序来接受命令行参数并返回你需要的数据。注意,你甚至可以返回JSON并使用karate.fromString()来解析它。Karate恰好对操作系统命令行执行有很好的支持,请参考:X1 E1 F1 X,并且在此描述了类似的思想:https://stackoverflow.com/a/51150286/143475
    1.最后,让你的开发团队建立一个小型的REST服务,在你的预生产环境中为你返回这些令牌,这可能是值得的。当你有了REST选项时,猜猜空手道真正擅长什么:)REST取决于你。

相关问题