之前我总是必须将推送通知证书(p12 文件)提供给服务器开发人员,以便他可以向我的应用程序发送推送通知。
但据我所知,现在根据 https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/APNsProviderAPI.html#//apple_ref/doc/uid/TP40008194-CH101-SW1 可以不用这些证书。
根据 Apple 的说法:
提供商身份验证 token 是您构造的 JSON 对象,其 header 必须包括:
您用于加密 token 的加密算法 (alg)
从您的开发者帐户获取的 10 个字符的 key 标识符 (kid) key
token 的声明负载必须包括:
发行者 (iss) 注册了 claim key,其值为您的 10 个字符的团队 ID,从您的开发者帐户中获取
issued at (iat) registered claim key,其值表示生成 token 的时间,以自 Epoch 以来的秒数表示,UTC
问题是从哪里获取开发者帐户中的这些kid、iss、iat值?
Best Answer-推荐答案 strong>
其实我看过WWDC的视频https://www.youtube.com/watch?v=IDBCTvHrix8 , 它几乎解释了一切。
1) kid 你需要 https://developer.apple.com -> Certificates, Identifiers & Profiles -> APNs Auth Key -> 按+按钮 -> 选择 Apple Push Notification Authentication Key (Sandbox & Production)此项中的 ID(新项将出现在 APNs Auth Key 菜单中)。这是你的 child 值(value)观
2) iss 是你的团队 ID,要获取它,你需要证书、标识符和配置文件 -> 标识符 -> 应用 ID -> 按你的任何应用 ID(如果你不没有,您需要为您的应用程序创建一个)-> 您将在 Prefix: 8jkjlj2k 处看到详细信息。这是您的团队 ID,您开发者帐户中的所有应用都将使用相同的 ID。
3) iat :据我了解,这是服务器开发人员在他这边生成 token 的时间,因此您无需向服务器开发人员提供此值
关于ios - Apple 推送通知集成问题,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/40253653/
|