APNs Auth Key Token 验证模式

新的APNs协议基于HTTP/2,一种是使用Universal Push Notification Client SSL 证书,一种是使用Token。

基于HTTP/2与Token的 APNs 协议

2199840-c3887f0a51fbd5e6.png

APNs Provider(即,APP的后台) API 允许您向您的 iOS,macOS 设备上的应用程序和 Apple Watch 发送远程通知。API 基于 HTTP/2 网络协议。每个交互通过一个 POST 请求,包含 JSON 的有效Payload负载,通过服务器使用Auth Key生成服务端token连接APNs服务器,并且通过设备token发送负载。APNs然后转发给特定设备的指定应用程序。
Request 和 Response 使用JSON通信APNs支持状态码和返回 error 信息APNs推送成功时 Response 将返回状态码200APNs推送失败时,Response 将返回 JSON 格式的 Error 信息。最大推送长度提升到4096字节(4Kb)可以通过 “HTTP/2 PING ” 心跳包功能检测当前 APNs 连接是否可用,并能维持当前长连接。支持为不同的APP定义 “topic”(其实就是App Bundle ID)多个推送App,只需要一个Apple Push APNs Auth Key

Apple Push Notification Authentication Key

2016年9月,苹果悄悄上线了token验证的推送方式,通过获得一个认证密钥(APNs Auth Key)去生成服务器端token,并且token非常容易生成,可以使用这些token令牌代替推送证书。一个认证密钥可用于多个应用程序并且永远不过期。每一个需要推送的App都需要配置推送证书的时代过去了。but,大部分第三方推送服务商,目前都没有升级到APNs Auth Key Token模式。
APNs Auth Key.JPEG
  • 通过 APNs Auth Key 鉴权
    开发者网站证书页面:开发者网站
1.点击左侧列表 “Keys” 中的 “All”,看账户中是否已有 auth key,没有则点击 “+” 新建。
authkey_1_addAuthKey.png
2.填写该 key 的描述并选择服务,如下图。 (注:在开发和生产环境均可使用,且不会过期。)
authkey_2_createAuthKey.png
3.点击 “Continue” 让你确认信息,再点击 “confirm”,就可以下载该 key了。(.p8 密钥文件)

(注意:记下 key id(.p8 密钥文件),而且只可以下载一次,请妥善保存。)

authkey_3_downloadAuthKey.png
4.获取你之前创建过的应用的 Bundle ID
authkey_4_getBundleId.png
5.在开发者账户的 “Membership” 页面获取 Team ID
authkey_5_getTeamId.png
6.在推送平台控制台上,进入你应用的应用设置中 iOS 的鉴权方式选择 “Token Authentication”,上传 auth key 文件,并填写你的 KEY ID,TeamID,和指定应用的 BundleID。推送平台会在后台为你的应用进行鉴权。
authkey_6_addInfoToPortal.png

权限和使用期限

新的token验证推送,一个认证密钥可用于多个App服务,没有时效性。不用为每个App需要单独配置两个(开发环境和生产环境)证书,还要注意过没过期。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 118,003评论 14 132
  • 本文是翻译的 APNs 的官方说明 自己英文不是太好,花了不少时间来翻译,其实之前我是看不进去的。后来发现,只要你...
    KyleBing阅读 685评论 0 0
  • 19年6月更新:该篇翻译已经被移到 TangYefei's Blog,相较于简书阅读体验会更好,如果喜欢请点个 ❤...
    tangyefei阅读 33,192评论 22 257
  • 概述 在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知...
    莫离_焱阅读 5,079评论 1 8
  • 本文的大部分内容是对苹果关于APNs官方文档的翻译以及整理。 一、设备token和消息的生命周期 关于设备toke...
    EA88阅读 13,810评论 14 44