IOS 应用程序 ARN 在 AWS SNS 中被禁用,即使 p12 文件的到期日期在明年

Posted

技术标签:

【中文标题】IOS 应用程序 ARN 在 AWS SNS 中被禁用,即使 p12 文件的到期日期在明年【英文标题】:IOS Application ARN Disabled in AWS SNS even p12 file has expire date in next year 【发布时间】:2017-08-29 10:52:58 【问题描述】:

我们在 Amazon AWS-SNS 下创建了许多应用程序,用于向苹果设备发送推送。 在创建每个应用程序时,我们正在上传 p12 文件,即使每个应用程序都有 p12 下一年的到期日期,我们的应用程序也会过期(禁用),由于此推送不会发送到保存在相同的应用程序。

谁能帮我看看导致应用程序 ARN 被禁用的各种原因是什么?提前谢谢你。

【问题讨论】:

【参考方案1】:

有时设备令牌会更改。然后,如果您尝试使用与无效令牌关联的端点,SNS 将禁用它。 即使您再次手动启用它,SNS 也会被告知此端点不再可用,并将再次禁用它。

这可能会对您有所帮助:

重新启用与无效令牌关联的端点

当移动平台(例如 APNS 或 GCM)通知 SNS 发布请求中使用的令牌无效时,SNS 会禁用与该令牌关联的端点。然后,SNS 将拒绝对该令牌的后续发布。虽然简单地重新启用端点并继续发布可能很诱人,但在大多数情况下这样做没有任何好处:发布的消息不会被传递,并且端点很快就会再次被禁用。

原因是与端点关联的令牌确实无效。交付给它无法成功,因为它不再对应于任何已安装的应用程序。下次发布时,移动平台会再次通知 SNS 令牌无效,SNS 会再次禁用端点。

要重新启用一个禁用的端点,它需要与一个有效的令牌相关联(通过使用 SetEndpointAttributes API 调用)然后启用。只有这样,到该端点的交付才会成功。唯一一次在不更新其令牌的情况下重新启用端点是当与该端点关联的令牌曾经无效但随后再次变为有效时。例如,当一个应用程序被卸载然后重新安装在同一移动设备上并收到相同的移动令牌时,就会发生这种情况。上面介绍的方法就是这样做的,确保仅在验证与之关联的令牌是最新的可用令牌后才重新启用端点。

您可以在此处阅读更多内容:Mobile token management with Amazon SNS

【讨论】:

谢谢你,我的问题是应用程序没有端点,我总是在发送任何推送之前重新启用端点。 对不起,我误解了这个问题。在此链接中查看扬帆的答案:***.com/questions/30679032/…也许这对您有帮助... 我已经通过 SNS 找到了一种方法,它提供了所有过期的应用程序详细信息,但他们的 p12 文件的过期时间是将来。在我再次上传相同的 p12 文件之前,仍然无法发送。【参考方案2】:

为避免 .p12 证书过期问题,您现在可以在 Amazon SNS 中为 APNS 使用 .p8 令牌。看看这个:https://aws.amazon.com/about-aws/whats-new/2021/11/amazon-sns-token-authentication-api-mobile-notifications/

【讨论】:

以上是关于IOS 应用程序 ARN 在 AWS SNS 中被禁用,即使 p12 文件的到期日期在明年的主要内容,如果未能解决你的问题,请参考以下文章

使用适用于 Ruby 的 AWS 开发工具包发布到 SNS 主题时指定区域

使用 Laravel 的 AWS SNS 推送通知

使用SQS接收SES消息

从 Lambda 函数内部访问 AWS CloudFormation ARN

AWS - SNS 端点为 iOS 自行禁用 - Apple 设备(推送通知失败)

我可以在没有 Cognito 的情况下在 iOS 应用程序中使用 AWS SNS