最近,我注意到在为给定的iOS客户端创建证书时出现了一个新选项。
该选项的标题为
苹果推送通知认证密钥(沙盒&生产)
获取用于生成服务器端令牌的身份验证密钥。您可以使用这些令牌作为通知请求证书的替代方案。
一个认证密钥可以用于多个应用,并且不会过期。
如何设置它呢?
发布于 2016-09-24 05:06:52
基于苹果推送通知令牌的身份验证是使用提供商证书连接到APN的替代方案。提供者API支持JSON Web Token (或JWT),这是一种开放标准,可以将身份验证声明与推送消息一起传递给APN。
要生成提供程序令牌,请获取用于签署令牌的私钥,如Creating a Universal provider Tokenin App Distribution Guide中所述。您应该构造一个包含10个字符的密钥ID (kid)的头部的令牌。令牌声明部分包含颁发者(iss),这是一个10个字符的团队ID。您的团队ID和密钥ID值可以从您的开发人员帐户获取。索赔还应包含在(iat)发布,这是生成令牌时从UTC纪元开始的秒数。必须使用使用P-256曲线的椭圆曲线数字签名算法(ECDSA)和指定为算法密钥(alg)中的值的SHA-256散列算法(ES256)对令牌进行签名。
{
"alg": "ES256",
"kid": "ABC123DEFG"
}
{
"iss": "DEF123GHIJ",
"iat": 1437179036
}
有关其他信息以及用于生成签名JSON web令牌的可用库的列表,请参阅https://jwt.io
这是一个对JSON Web令牌(或JWT)进行签名的快速库:kylef/JSONWebToken.swift
注意:APN仅支持使用ES256算法签名的提供商令牌。不安全的JWT或使用其他算法签名的JWT将被拒绝,并返回一个指示无效提供程序令牌的响应。
来源:APPLE : Provider Authentication Tokens
WWDC2016-第724期:Token Based Authentication
PS:
最大的不同之处在于,密钥方式不会过期,而证书将在一年后过期。
https://stackoverflow.com/questions/39671902
复制相似问题