新的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 密钥文件)

新版的开发者网站有了变化 .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需要单独配置两个(开发环境和生产环境)证书,还要注意过没过期。

作者:husky_duang
链接:https://www.jianshu.com/p/b700f0237b0e
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

APNs Auth Key Token 验证模式相关推荐

  1. WebApi后端框架Token身份认证,Api接口Token验证

    令牌概述(Token) 在以用户账号体系作为安全认证的信息系统中,对用户身份的鉴定是非常重要的事情. 令牌机制是软件系统安全体系中非常重要的部分,在计算机身份认证中是令牌的意思,一般作为邀请.登录以及 ...

  2. Django restframework之Token验证的缺陷及jwt的简单使用

    一.主要缺陷: 1.Token验证是放在一张表中,即authtoken_token中,key没有失效时间,永久有效,一旦泄露,后果不可想象,安全性极差. 2.不利于分布式部署或多个系统使用一套验证,a ...

  3. go token验证_registry v2 解析以及如何实现token验证

    提到registry v2,主要改进是支持并行pull镜像,镜像层id变成唯一的,解决同一个tag可能对应多个镜像的问题等等.如果还不太了解,可以且听我细细道来. 首先不得不说的是v2 新加了一个概念 ...

  4. 【Kubernetes】k8s的安全管理详细说明【k8s框架说明、token验证和kubeconfig验证详细说明】

    文章目录 环境准备 k8s安全框架介绍 token验证 说明 启用token验证 测试token验证 base-auth[已经被淘汰] kubeconfig验证 说明 kubeconfig文件拷贝做测 ...

  5. .NET JWT Token验证

    Model文件夹下新建三个类LoginResult,LoginRequest,AuthInfo 根据自己业务进行修改 public class LoginResult{public bool Succ ...

  6. 26.gateway的IP 认证拦截,gateway做token验证 流程图(springcloud)

    1 创建 IPGlobalFilter package com.it.filter;import com.fasterxml.jackson.databind.ObjectMapper; import ...

  7. 10分钟搞定Java带token验证的注册登录

    这是spring boot框架下的登录注册功能,并且带有token验证,可以用于生产环境的实例 原理太简单,直接上代码,让你知道什么叫拿来主义!! 1,java中项目介绍 2,resources 中的 ...

  8. appkey 和 secret key token

    appkey 和 secret key相当于当前账户的另外一套账号和密码机制. 当然, 仅仅是在API调用的范围内适用. 1.生成方式可以自己定义, appkey保证不重复就行. secret key ...

  9. node.js实现token验证——从数据库验证登录到redis存储

    前言 做过前后端分离项目的同学应该都做过 token 验证,在前端登录的时候需要缓存后端传过来的 token,然后在需要验证权限的接口带上 token.本章节来实现使用 node 进行 token 的 ...

最新文章

  1. 一文读懂支持向量积核函数(附公式)
  2. java中Arrays的用法
  3. 技术差的程序员,90%都输在这点上!骨灰级开发:其实都是在瞎努力!
  4. html弹出保存文件对话框_初步了解CAD的模板文件
  5. vue学习笔记-节接口调用-async和await
  6. tspline工具_Rhino 6 如何使用 T-spline?
  7. Windows任务管理器中的内存
  8. 高等数学(第七版)同济大学 总习题一 个人解答
  9. My 10 favorite APPs
  10. 仓储系统主要注意事项
  11. 新美大--软件测试--《社招、校招jd、公司具体介绍、培训发展、关于实习是什么,要求及常见问题、校招行程、校招常见问题》整理
  12. linux执行 ifconfig 命令 eth0没有IP地址(intet addr、Bcast、Mask)
  13. Vagrant + VMBox 踩坑记录
  14. 安装应用提示安装失败或不能安装,报INSTALL_FAILED_DUPLICATE_PERMISSION错误
  15. linux文件扫描并打印,Linux办公一条龙—Linux中扫描、打印的实现
  16. 卡马克快速平方根(平方根倒数)算法(转)
  17. maven setting,xml
  18. 3.13 小红书笔记怎样带话题,才能增加曝光?【玩赚小红书】
  19. 第十九周 银行系统(链表、二进制、业务明细)
  20. 在Mac下使用Python3

热门文章

  1. 早安心语/2017-6-28
  2. 2023年最新「Typora 1.5.10」安装教程(超级详细、亲测有效~)
  3. hdu 2066 一个人的旅行(dijkstra)
  4. TCP backlog
  5. Dynamo_修复导出EXCEL时出现的组件丢失问题
  6. OceanMind海睿思入选《2023中国企业数智化转型全景图中国数据智能产业图谱》
  7. 乐MAX 乐视X900+_官方线刷包_救砖包_解账户锁
  8. OCaml 第一章习题
  9. 【宝塔面板建站】05. 七牛云存储使用教程 免费备份10G数据(保姆级图文)
  10. flex弹性布局图解