我正在尝试实现一种方法,该方法将计算并验证verifying a slack request的HmacSHA256签名。由于...各种原因...我正在使用scala.js
,因此无法访问常规的javax.crypto
导入。
从slack的文档中验证来自Slack的签名请求:
- 借助您最喜欢的编程中实现的HMAC SHA256,使用Slack Signing Secret哈希上述基字符串作为键。
- 将此计算出的签名与请求上的X-Slack-Signature标头进行比较。
嗯,第一步是有问题的。在scala.js中,javax.crypto
软件包不可用,因此以下内容将不起作用:
import javax.crypto.Mac
import javax.crypto.spec.SecretKeySpec
def asHmacSHA256(key: String, baseString: String): Array[Byte] = {
val secretKeySpec = new SecretKeySpec(key.getBytes(), "HmacSHA256")
val hmac = Mac.getInstance("HmacSHA256")
hmac.init(secretKeySpec)
hmac.doFinal(baseString.getBytes())
}
我该如何解决-是否有一个适用于scala.js的好的哈希库,或者我是否必须引入某些js
依赖项,或者我将不得不... ... [[gulp ...推出我自己的哈希算法?