iOS发送推送与APNs Auth Key:突然“403 Forbidden:{”reason“:”InvalidProviderToken“}”

问题描述 投票:21回答:7

我正在发送带有APNs Auth Key(“永不过期”)的推送通知,这种通知效果很好,直到我突然得到

403 Forbidden: {"reason":"InvalidProviderToken"}

作为发送推送通知时的响应。当它工作一次并突然间没有失效日期时,可能是什么原因?与此同时,它再次推动了一些推动,但现在我再次得到错误...有没有其他人经历过这个?

编辑

不确定,但似乎这只发生在Ubuntu服务器上,而不是在我的本地(OS X)机器上......

apple-push-notifications
7个回答
4
投票

我在几种情况下看到过这种情况:

  1. 重新提交过期的提供者令牌似乎会将令牌列入黑名单并导致后续的InvalidProviderToken拒绝而不是ExpiredProviderToken拒绝。检查日志是否有令牌到期消息。检查系统时钟以确保您没有生成带有时间戳偏差的令牌。
  2. 提交到无效主题将使连接上的所有提供者令牌无效(甚至以前有效的提供者令牌)。仅提交密钥绑定的主题,每个连接仅使用一个密钥。

1
投票

服务器确实响应InvalidToken和/或ExpiredToken错误。您的身份验证令牌不应包含任何'=','+',' - ',请仔细检查您的令牌是否包含任何此令牌。此外,签名(令牌的第3部分,应该是Base64URL编码,因此没有前面提到的字符)。


1
投票

当使用相同的连接向不同的团队ID发送推送时,我们遇到了完全相同的问题。重现的步骤是:

  • 打开与APNS的连接并使用相同的连接:
  • 发送基于令牌的推送到团队ID com.companyA.xxx的主题1234:APNS接受并成功传递推送。
  • 发送基于令牌的推送到团队ID io.companyB.xxx的主题5678:APNS响应HTTP 400 BadRequest The device token does not match the specified topic
  • 再次发送基于令牌的推送到团队ID io.companyB.xxx的主题5678:APNS响应HTTP 403 Forbidden: the provider token is not valid or the token signature could not be verified

在此之后,无法发送任何推送,并且必须关闭并重新打开连接。

我们最终做的解决方法是为每个团队打开一个连接。 qazxsw poi没有提到类似的东西,所以我认为这是一个错误,我打开了一个错误报告。


1
投票

对我来说服务器时间无效,修复服务器时间解决了问题


0
投票

对我来说,配置错误存在问题。我使用了错误的团队ID。在查看任何其他解决方案之前,请确保所有配置都正确无误。


0
投票

我一直在使用密钥的名称而不是密钥ID。验证APNS documentation显示正确的价值。


-1
投票

Apple的APN https://developer.apple.com/account/resources/authkeys/review/说:

APN仅支持使用ES256算法签名的提供程序身份验证令牌。不安全的JWT [JSON Web令牌]或使用其他算法签名的JWT将被拒绝,您的提供者服务器将收到InvalidProviderToken(403)响应。

所以,似乎问题不在于你的认可;它实际上是从您的密钥生成的Web令牌的问题。

© www.soinside.com 2019 - 2024. All rights reserved.