iOS envoi de push avec un Apn Clé Auth: tout à coup, "403 Forbidden: {"raison":"InvalidProviderToken"}"

j'envoie mes notifications push avec une clé D'auteur APNs ("never expires") qui a bien fonctionné jusqu'à ce que soudainement je obtienne

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

comme réponse lors de l'envoi des notifications push. Quelle pourrait être la raison de cela quand il a fonctionné une fois et soudainement il ne le fait pas sans avoir une date d'expiration? En attendant, ça a encore marché pour quelques coups, mais maintenant j'ai encore l'erreur... Quelqu'un d'autre l'expérience de cette?

EDIT

Pas sûr mais il semble que cela n'arrive que sur le serveur Ubuntu, pas sur ma machine locale (OS X)...

17
demandé sur swalkner 2017-03-02 10:39:22

5 réponses

je l'ai vu dans un couple de circonstances:

  1. la réinitialisation des tokens fournisseurs expirés semble entraîner la liste noire des tokens fournisseurs et des résultats InvalidProviderToken refus plutôt que ExpiredProviderToken rejets. Vérifiez vos logs pour les messages d'expiration des tokens. Vérifiez votre horloge système pour vous assurer que vous ne générez pas de jetons avec des horodateurs asymétriques.

  2. soumettre à des sujets invalides invalidera tous les jetons de fournisseur sur la connexion (même précédemment valides). Ne vous soumettez qu'aux sujets auxquels la clé est liée et n'utilisez qu'une seule clé par connexion.

3
répondu teppic 2017-05-15 23:33:41

le serveur répond par une erreur InvalidToken et / ou ExpiredToken. Votre token d'authentification ne devrait pas contenir '=', '+', '-', vérifiez si votre jeton n'a rien de tout ça. Aussi la signature (3ème partie du jeton, doit être codée Base64URL, donc sans les caractères mentionnés précédemment).

1
répondu Damian Lattenero 2017-05-18 19:40:12

nous avons exactement le même problème lors de l'envoi de pushes à des identificateurs d'équipe différents en utilisant même connexion. Les étapes pour reproduire:

  • ouvrez une connexion à APNS et utilisez la même connexion à:

  • envoyer un push basé sur un jeton au sujet com.companyA.xxx de l'identité de l'équipe 1234: APNS accepte et délivre la poussée avec succès.

  • envoyer un push basé sur un jeton au sujet io.companyB.xxx de l'équipe d'id 5678: APN répond HTTP 400 BadRequest The device token does not match the specified topic
  • Envoyer à nouveau un jeton de base de pousser à la rubrique io.companyB.xxx de l'équipe id 5678: APN répond HTTP 403 Forbidden: the provider token is not valid or the token signature could not be verified.

après cela il devient impossible d'envoyer n'importe quelle poussée et la connexion doit être fermée et rouverte.

le contournement que nous avons fini par faire est d'ouvrir une connexion par identifiant d'équipe. documentation APNS ne mentionne rien de Tel donc je considère que c'est un bug et j'ai ouvert un rapport de bogue.

0
répondu Jan 2017-08-18 09:43:04

pour moi, l'heure du serveur est invalide, la fixation de l'heure du serveur, le problème est réglé

0
répondu Mohsen Shakiba 2018-05-29 06:28:40

APN D'Apple documentation dit:

APNs prend en charge uniquement les jetons d'authentification de fournisseur qui sont signés avec l'algorithme ES256. JWTS non sécurisé [JSON Web Tokens], ou JWTS signé avec d'autres algorithmes, sont rejetés, et votre fournisseur de serveur reçoit la réponse Invalidprovider-Tooken (403).

donc, il semble que le problème ne soit pas avec votre auth kiey; c'est en fait un problème avec le token web qui a été généré à partir de votre clé.

-1
répondu Dominic Dos Santos 2017-03-09 22:18:15