Validate Apple StoreKit2 in-app purchase receipt jwsRepresentation in backend (node ideally, but anything works)(在后端验证Apple StoreKit2应用内购买收据jws表示(理想情况下是节点,但一切都可以))
问题描述
如何在Node的后端验证来自StoreKit2的应用内购买JWS表示?
解码有效负载非常简单,但是我在任何地方都找不到苹果用来签署这些JWS/JWTs的公钥。在我使用JWT的任何其他时候,您只需使用节点jsonwebtoken
库并传入签名者公钥或共享密钥(配置的或从JWK获取的)。
我可以使用node-jose
j.JWS.createVerify().verify(jwsString, {allowEmbeddedKey: true}).then(r => obj = r)
轻松解码JWS,它给出了如下对象:
而且JSON很容易解析有效负载并获得我想要的数据。但是,如何使用x5c
字段中的证书链验证其真实性
谢谢!
推荐答案
最终解决了这个问题。原来我们需要硬编码的";证书来进行检查。
Apple在their website上拥有所需的证书。您已经下载了根证书(因为它是对整个链进行签名的证书),但是您也可以获得中间证书。
下载后将其转换为.pem
:
然后您需要做的就是对照JWS中的代码进行验证:
希望这对其他人有帮助!
这篇关于在后端验证Apple StoreKit2应用内购买收据jws表示(理想情况下是节点,但一切都可以)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!