Apple推送通知身份验证密钥(沙箱和生产)

Wil*_*Hua 22 iphone push-notification ios swift

我最近在为给定的iOS客户端创建证书时注意到了一个新选项.

该选项标题为

Apple推送通知身份验证密钥(沙箱和生产)

获取身份验证密钥以生成服务器端令牌.您可以使用这些令牌替代通知请求的证书.

一个身份验证密钥可用于多个应用程序,并且不会过期.

如何设置它?

gun*_*ngh 15

Apple Push Notification基于令牌的身份验证是使用提供程序证书连接到APN的替代方法.提供者API支持JSON Web Token(或JWT),一种开放标准,用于将身份验证声明与推送消息一起传递给APN.

要生成提供者令牌,请获取用于签署令牌的私钥,如创建通用提供程序令牌应用程序分发指南中所述.您应该构造一个包含10个字符密钥ID(kid)的标头.令牌声明部分包含Issuer(iss),它是10个字符的团队ID.您的团队ID和密钥ID值可以从您的开发者帐户中获取.声明还应包含Issued At(iat),它是生成令牌时UTC中Epoch的秒数.必须使用P-256曲线和SHA-256哈希算法(ES256)使用椭圆曲线数字签名算法(ECDSA)对令牌进行签名,该算法指定为算法密钥(alg)中的值.

{
    "alg": "ES256",
    "kid": "ABC123DEFG"
}
{
    "iss": "DEF123GHIJ",
    "iat": 1437179036
 }
Run Code Online (Sandbox Code Playgroud)

有关其他信息以及用于生成签名JSON Web令牌的可用库列表,请参阅https://jwt.io

这是一个快速库来签署您的JSON Web令牌(或JWT):kylef/JSONWebToken.swift

注意:APN仅支持使用ES256算法签名的提供者令牌.使用其他算法签名的不安全JWT或JWT将被拒绝,并返回指示无效提供者令牌的响应.

消息来源:APPLE:提供商身份验证令牌

WWDC 2016 - 会话724:基于令牌的认证

PS:

最大的区别是,Key Way不会过期,而证书将在一年后过期.