gpt4 book ai didi

json - 指导如何实际加密 APNS 的 JSON token

转载 作者:行者123 更新时间:2023-12-02 06:43:20 25 4
gpt4 key购买 nike

希望有人能让我度过这一关...因为我花了很多时间在这上面,但仍然没有工作。

简短的故事是,我想为我的 Xamarin.Forms 应用程序使用 Azure 通知中心。

它希望这些信息起作用:

enter image description here

一切都很好,我已经控制了所有这些,除了 Token 之外。

好的,我按照有关该主题的 Microsoft 文档进行操作: https://learn.microsoft.com/en-us/azure/notification-hubs/notification-hubs-push-notification-http2-token-authentification

我认为我会一直跟进并控制一切,直到我达到:“Authentication token

这里说:

The authentication token can be downloaded after you generate a token for your application. For details on how to generate this token, refer to Apple’s Developer documentation.

好像没什么大不了的,然后它链接到 this page ,这应该对我有帮助。通读它,点击链接等阅读内容。

我最终到达此页面:Establishing a Token-Based Connection to APNs

疯狂和困惑对我来说真的开始了,因为,它接着说,就像这是世界上最常见的事情:

Encrypt the resulting JSON data using your authentication token signing key and the specified algorithm

除了指向 jwt.io 工具的链接之外,它并没有真正解释太多。好吧,如果我能让这个工具发挥作用那就太好了......

从表面上看,这很简单,因为文档解释了将什么内容放在哪里,所以我这样做:

enter image description here

因此,“ header ”和“有效负载”已填写,我认为它是正确的 - 但是,在底部,我显然需要输入一些 key ,以便能够在另一端正确解密......问题是我在这里放什么?

当我在 Apple 开发者门户中创建 key 时,我当然下载了 .p8 文件,我可以看到该文件包含我的私钥...但我有 2 个问题。

将其放入 jwt.io 工具中,立即导致“无效签名”,并且我不知道要在“公钥”部分中放入什么。

那么,我做错了什么?

提前致谢,真的希望有人能帮助我,因为我开始对这个发展中的“微小”步骤感到疯狂,而这一步已经花费了太长时间了。

最佳答案

在 jwt.io 的底部有一些库,您可以使用它们来加密服务器上的 token 。例如,这个 php 库:https://github.com/lcobucci/jwt/blob/3.3/README.md

关于公钥。我认为 KeyID 是 APNs 用来验证的公钥。您只需要私钥即可生成 token 。在这个 php 示例中,它是这样的:

$token = (new Builder())->issuedBy('http://example.com') // Configures the issuer (iss claim)
->permittedFor('http://example.org') // Configures the audience (aud claim)
->identifiedBy('4f1g23a12aa', true) // Configures the id (jti claim), replicating as a header item
->issuedAt($time) // Configures the time that the token was issue (iat claim)
->canOnlyBeUsedAfter($time + 60) // Configures the time that the token can be used (nbf claim)
->expiresAt($time + 3600) // Configures the expiration time of the token (exp claim)
->withClaim('uid', 1) // Configures a new claim, called "uid"
->getToken($signer, $privateKey); // Retrieves the generated token

关于json - 指导如何实际加密 APNS 的 JSON token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57357354/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com