签名验证上的Stripe文档说:
目前,唯一有效的签名方案是
v1。为了帮助测试,Stripe为测试模式事件发送了一个带有假v0方案的附加签名。 条纹签名: v1=5257a869e7ecebeda32affa62cdca3fa51cad7e77a0e56ff536d0ce8e108d8bd,v0=6ffbb59b2300aae63f272406069a9788598b792a944a07aba816edb039989a39 t=1492774577
v0签名在哪些方面有助于测试?我能用它做什么?
如何生成v0签名?它只是一个随机字符串,还是一些可以验证的HMAC摘要,类似于v1方案?
发布于 2019-02-12 16:53:56
如果您正在构建自己的客户端来验证Stripe的web钩子事件签名,那么v0方案可能非常有用。用于测试您的客户端是否忽略了Stripe-Signature报头中的未知方案(或者,在将来的某个时候,可能忽略了不推荐的方案)。
v0摘要不使用为您的端点生成的签名秘密;Stripe没有释放用于创建它的秘密,因此无法验证它。
Stripe自己的客户库包括一个关于忽略无效方案的测试用例。例如,在Ruby库中:
should "raise a SignatureVerificationError when there are no signatures with the expected scheme" do
header = generate_header(scheme: "v0")
e = assert_raises(Stripe::SignatureVerificationError) do
Stripe::Webhook::Signature.verify_header(EVENT_PAYLOAD, header, "secret")
end
assert_match("No signatures found with expected scheme", e.message)
endhttps://stackoverflow.com/questions/48892851
复制相似问题