Dav*_*han 6 token push-notification ios tls1.2
我正在阅读使用TLS证书进行推送和使用身份验证令牌进行推送的文档
但是,除了说明如何配置每种方法外,文章还没有真正说明两种方法的区别或优点/缺点。有人可以向我解释吗?
Ika*_*Ika 14
基于令牌的身份验证是更新的,从本质上简化了APNS身份验证。它基于您可以在Apple开发人员帐户上生成的公钥和私钥对。
这是它更简单的主要原因:
关于APNS的2016年WWDC视频是一个很好的情报来源:https : //developer.apple.com/videos/play/wwdc2016/724/
2020年,你只能现实地使用“令牌”方法。较旧的方法是遗留的,他们可能会砍掉它。
你的私钥看起来像这样
let keystring = `-----BEGIN PRIVATE KEY-----
MIGTAgEAMBMGByqGSM49Aas8d76as8das687asd687asd68as8brwUIWA46qcXis
zCu6dbd4s8d7b5s86gf98ugtr28re7089a7d6tbvpiiui524kyfpq9861eFJP7we
eE7rX4182609457ohgyj3lhgp98wfb698bfg69287f2k4htgwpo876grwo7XDklz
9fdg689d
-----END PRIVATE KEY-----`
Run Code Online (Sandbox Code Playgroud)
您的密钥 ID将如下所示
let keyId = "CTU7XXBPRH"
Run Code Online (Sandbox Code Playgroud)
并且您的 Apple 团队 ID 是您常用的 Apple 团队 ID,看起来像“YWD3UUTEWD”。
如今 - 谢天谢地 - 在 Apple 开发者网站上从贵公司帐户中获取私钥和密钥 ID 相对容易。
如果你想在 AWS 上的普通 Node 服务器上测试发送推送,我强烈推荐这个优秀的新 npm,APNS2 https://www.npmjs.com/package/apns2
let bn = new BasicNotification(deviceToken, 'Hello')
Run Code Online (Sandbox Code Playgroud)
发送推送就是这么简单。
提示:
不要忘记该死的“开发/沙盒”推送只能在连接到您的 MAC/XCODE 的 IPHONE 上工作!
开发/沙盒推送 - 仅适用于通过 Xcode 运行构建并连接到 Mac的 iPhone
生产推送 -它们与TestFlight构建完全一致。
另外:不要忘记所谓的开发/沙盒推送通常是不稳定的。通常,他们几个小时都没有到达,他们根本没有到达,他们根本不在许多地区工作。
不要忘了,这是完全正常使用“生产”的,简单地说,用TestFlight应用。
所以
而如果你
(需要明确的是,在使用 APNS2 时,如果您确实想尝试“开发”推送,要订购“开发”推送,只需使用此处底部解释的额外代码行https://www.npmjs.com/package /apns2 )
2021 年,Apple设置远程通知服务器状态
两种技术都有优点和缺点,因此请决定哪种技术最适合您的公司。
Fattie 和 Ika 都表示基于 TLS/证书的身份验证较差。Firebase 中的项目 UI也使用了一些无法解释太多恕我直言的语言:
建议使用身份验证密钥进行配置,因为它们是向 iOS 发送通知的最新方法
.p12并使用您的应用程序。进入developer.apple.com,创建一个推送通知密钥。但是,您的应用程序必须每小时更新这些令牌。创建.p12TLS 身份验证需要更多的工作。这种均匀的安全性重要吗,还是使用 Token Auth 更方便?我想说在大多数情况下,请使用令牌身份验证。