gpt4 book ai didi

ios - JWT 用于从服务器发送 iOS 推送消息

转载 作者:行者123 更新时间:2023-12-01 18:42:58 34 4
gpt4 key购买 nike

我目前正在开发用于发送 iOS 推送消息的服务器端支持(如果相关,服务器使用 Java)。苹果开发者文档 "Communicating with APNs"声称如果使用 HTTP/2 协议(protocol),则可以使用证书或刚刚插入 header 的 JWT token 。同样,据我所知,证书应该每年手动更新(这对我来说似乎很容易出错),而 JWT 的所有部分都可以无限期地自动重新生成(或不?)。如果是这样的话,我肯定想尝试使用 JWT。

现在,我对 iOS 开发的经验为零,没有在 iOS 开发程序中注册,甚至没有 iOS 设备,我很难理解如何准确地编写正确的 JWT。也就是说,我不明白是什么

  • “一个 10 个字符的 key 标识符 ( child ) key ,从您的开发者帐户获得”
  • "issuer (iss) 注册的claim key,值为 你的10个字符的Team ID ,从你的开发者账号获取的"
  • “创建 token 后,您必须使用 和私钥 对其进行签名。”

  • 在最后一句中,我不明白这个私钥是什么。

    与我一起工作的 iOS 开发人员对研究这个主题并不是很热心,他们像过去一样给了我 p12 证书。所以,如果我能把他们指向正确的地方(最好是图片或工作“路径”)说“给我这个和这个”,我的问题有望得到解决。如果其中任何一个在任何开发人员的帐户中都没有现成的,并且应该通过某些过程来获得,恐怕我也需要这些说明(对文档的工作引用或您自己的描述将是完美的)。

    如果您能确认我对 JWT 的总体假设并向我澄清缺失的细节,我将不胜感激。

    最佳答案

    key ID 和 key 可从 Apple Developer 帐户门户获得。 Xcode help 中描述了该过程。并且可以通过搜索“配置推送通知”的帮助找到。

    您在开发人员门户中创建一个新的推送通知身份验证 key :

  • 转到证书、标识符和配置文件,然后在证书下,选择全部或 APNs 身份验证 key 。
  • 单击右上角的添加按钮 (+)。
  • 在生产下,选中“Apple Push Notification Authentication Key (Sandbox & Production)”复选框,然后单击继续。
    enter image description here

  • 单击继续后,您将看到以下屏幕:
    enter image description here

    key ID 是 KID在文档中提到,当您单击 时下载 您将获得与此 key ID 关联的私钥。

    您可以使用它来生成 token ,它是一个 JSON 文档,格式如下:
    {
    "alg": "ES256",
    "kid": "ABC123DEFG"
    }
    {
    "iss": "DEF123GHIJ",
    "iat": 1437179036
    }

    在哪里 kid是 key ID 和 iss团队标识符,也来自开发者门户。 iat是此 token 的发行时间,它是自 Epoch 以来的秒数,以 UTC 为单位

    创建 token 后,您必须使用 kid 时从门户下​​载的私钥对其进行签名。生成了。然后,您必须使用椭圆曲线数字签名算法 (ECDSA) 和 P-256 曲线和 SHA-256 哈希算法来加密 token 。

    为确保安全,APNs 需要定期生成新的 token 。一个新的 token 有一个更新后的声明键,其值表示生成 token 的时间。如果 token 发布的时间戳不在最后一小时内,APNs 会拒绝后续推送消息,并返回 ExpiredProviderToken (403) 错误。

    关于ios - JWT 用于从服务器发送 iOS 推送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40300744/

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