美文网首页
iOS两种推送方式的区别

iOS两种推送方式的区别

作者: colacola | 来源:发表于2017-11-05 15:28 被阅读1757次

APNs(Apple Push Notification service =APNs)是Apple推送通知服务。2016年的WWDC,苹果上线了token验证的推送方式,通过获得一个认证密钥(APNs Auth Key)去生成服务器端token,并且token非常容易生成,可以使用这些token令牌代替推送证书。一个认证密钥可用于多个应用程序并且永远不过期。每一个需要推送的App都需要配置推送证书的时代过去了。而且,一些第三方推送服务商,如极光、LeanCloud(官网强烈推荐的方式)目前已经升级支持APNs Auth Key Token模式。

1、认证方式

TLS(是“Transport Layer Security”的缩写),中文叫做“传输层安全协议”。新的APNs协议基于HTTP/2,旧推送是使用Universal Push Notification Client SSL 证书,新推送是使用Token认证。

1.1、基于证书的信任认证

建立基于证书的Provider信任连接

建立连接工作的步骤如下:

1)Provider通过TLS向APNs发起安全请求。

2)APNs返回一个证书给Provider。

3)Provider验证APNs的证书,验证通过后,返回Apple提供的证书(通过苹果开发者账号创建的推送证书)给APNs。

4)APNs验证Provider返回的证书,从而确认连接请求来自于合法的Provider并建立TLS连接。

上述步骤完成后,信任连接建立,Provider服务器可以发送基于证书的远程推送消息请求给APNs。

证书认证

1.2、基于Token的信任认证

基于Token的Provider信任连接

建立连接工作的步骤如下:

1)Provider通过TLS向APNs发起安全请求。

2)APNs返回一个证书给Provider。

以上两步完成后,信任连接建立,Provider服务器可以发送基于Token的远程推送消息请求给APNs。

3)Provider验证APNs的证书,然后Provider发送的每个消息请求必须携带上JWT 认证的 Token。

4)APNs验证Provider返回的证书,并返回请求的结果。

Token认证

2、推送服务配置过程

2.1、配置推送证书

1)在苹果开发者网站上创建两种 APNs 证书,有开发(Development)和生产(Production)两种。开发证书用于开发调试使用;生产证书既能用于开发调试,也可用于产品发布。选择该证书准备绑定的对应的 AppID。

新建证书 选择证书类型(开发或生产证书) 选择证书需要绑定的App ID

2)在电脑上打开系统自带的 KeychainAccess 创建 Certificate Signing Request文件。

创建CSR文件

3)回到浏览器中 CSR 上传页面,上传刚刚生成的后缀为 .certSigningRequest 的文件。

上传CSR文件

4)生成证书成功后,点击 “Download” 按钮把证书下载下来,是后缀为 .cer 的文件。

下载后缀为 .cer的证书

5)在电脑上双击证书后,会在“KeychainAccess”中打开,选择左侧“钥匙串”列表中“登录”,以及“种类”列表中“我的证书”,找到刚才下载的证书,并导出为 .p12 文件。

导出.p12 文件

6)将导出的 .p12 文件(开发和生产的)上传至第三方推送平台。

2.2、配置认证密钥(APNs Auth Key)

1)在苹果开发者网站上创建Keys,填写相应的名称之后,网站会生成包含APNs Auth Key的.p8密钥文件。

创建APNs Auth Key

2)将下载的的 .p8 密钥文件上传至第三方推送平台。

注:.p8 密钥文件只允许下载一次,需要妥善保管。

3、权限和使用期限

传统的推送证书,每个App需要单独配置两个(开发环境和生产环境)证书。推送证书的有限期为1年(生产的推送证书比开发的推送证书多一个月),过期之后需要重新配置。

新的token验证推送,一个认证密钥可用于多个App服务,而且永远不会过期。但是该密钥生成后,在网站上只允许下载一下,要保管好下载的.p8 密钥文件。

对于一个开发者账号管理着多个App,并且部分App迭代周期大于1年,这种新的推送认证方式大大地减少了管理证书人员的工作量。


参考文献:

WWDC2016-Session724(APNS新特性)

极光-iOS 证书设置指南

LeanCloud-iOS 推送证书设置指南

APNs Overview

基于HTTP/2与Token的APNs新协议

相关文章

  • iOS推送通知及静默推送相关

    iOS推送 在IOS推送服务中,Apple提供了两种不同方式的推送形式,...

  • iOS两种推送方式的区别

    APNs(Apple Push Notification service =APNs)是Apple推送通知服务。2...

  • iOS远程推送之(一):APNs原理和基本配置

    一、前言 iOS中消息推送有两种方式,本地推送和远程推送。本地推送在iOS中使用本地通知为你的APP添加提示用户功...

  • iOS VOIP 推送

    1. 普通推送与voip推送区别 普通推送: 常规的apns推送,Apple提供了两种不同方式的推送形式,一种是在...

  • iOS之图片加载

    iOS加载本地图片有两种方式:imageName和imageWithContentOfFile 区别 缓存:ima...

  • 制作 Swift 版的 Framework

    iOS的静态库和动态库 iOS 提供了.framework与.a两种方式制作 SDK 的方式。两者的区别在于, F...

  • ios voip 推送

    什么是voip推送和普通的ios推送有什么区别呢?普通推送分为:远程推送和本地推送,区别网上资料太多了,简单说一下...

  • iOS 几种图片或Gif异步加载

    iOS 加载加载图片的方式主流的有两种(本地图片略过):1、SDWebImage。2、YYWebImage。 区别...

  • IOS 普通推送和静默推送发送文本格式

    在IOS推送服务中,Apple提供了两种不同方式的推送形式,一种是在通知栏上面显示的推送;另一种则是不带消息提醒的...

  • UILocalNotification

    iOS提供两种推送机制: 本地推送通知(Local Notification)与远程推送通知(Remote Not...

网友评论

      本文标题:iOS两种推送方式的区别

      本文链接:https://www.haomeiwen.com/subject/xfdkdttx.html