微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

APNS 如何确定提供者令牌的年龄?

如何解决APNS 如何确定提供者令牌的年龄?

文档说:

令牌的声明负载必须包括

  • 发布于 (iat) 注册的声明密钥,其值表示 生成令牌的时间,就数量而言 自纪元以来的秒数,UTC 时间

为了确保安全性,APN 需要定期生成新的令牌。一个新的令牌有 更新在声明键处发出,其值指示生成令牌的时间。如果令牌发行的时间戳不是在最后一小时内,APNs 拒绝后续推送 消息,返回 ExpiredProviderToken (403) 错误

来源:https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CommunicatingwithAPNs.html

在另一个部分:

iat | “发布时间”,其值表示生成此 JSON 令牌的时间。将值指定为自纪元以来的秒数,以 UTC 为单位。 该值不得超过当前时间的一小时

那些规则是如此零碎和重复,所以如果我错了,请纠正我: iat 必须是 1 小时前和现在 1 小时之间的数字日期。假设现在是 8:30,我将 iat 设置为 8 点:这是否意味着我的令牌将在另外半小时内有效,因为这就是 iat是告诉 APNS,还是在 APNS 收到我的推送请求时开始计数?如果我从现在起将 iat 设置为 1h 会怎样...这是否意味着我的令牌将在 2h 内有效?

一个问题。鉴于:

定期刷新您的令牌

为了安全起见,APNs 要求您定期刷新您的令牌。不超过每 20 分钟刷新一次您的令牌,并且不低于每 60 分钟刷新一次。 APNs 拒绝任何其令牌包含超过一小时的时间戳的请求。同样,如果您每 20 分钟重新创建令牌多次,APNs 会报告错误

来源:https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/establishing_a_token-based_connection_to_apns

每次我签署令牌(使用 JWT 的 Node 模块)时,它都会生成不同的字符串,即使我使用相同的 iat。如果我在 20 分钟阈值之前使用它,它是否算作“娱乐”,导致 TooManyProviderTokenUpdate 错误

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。