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)...
5 réponses
je l'ai vu dans un couple de circonstances:
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 queExpiredProviderToken
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.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.
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).
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'équipe1234
: 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'id5678
: APN répondHTTP 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 id5678
: APN répondHTTP 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.
pour moi, l'heure du serveur est invalide, la fixation de l'heure du serveur, le problème est réglé
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é.