apple push notifications - que - iOS enviando push con APNs Aut. clave: de repente, "403 Prohibido:{" motivo ":" InvalidProviderToken "}"
push notifications ios react native (6)
El servidor responde con un error InvalidToken y / o ExpiredToken. Su token de autenticación no debe contener ningún ''='', ''+'', ''-'', Verifique si su token no tiene ninguno de estos. También la firma (la tercera parte del token, debe estar codificada en Base64URL, así que sin los caracteres mencionados anteriormente).
Estoy enviando mis notificaciones push con una clave de autenticación de APN ("nunca caduca") que funcionó bien hasta que de repente me aparece
403 Forbidden: {"reason":"InvalidProviderToken"}
Como respuesta al enviar notificaciones push. ¿Cuál podría ser la razón de esto cuando funcionó una vez y de repente no lo hace sin tener una fecha de vencimiento? Mientras tanto, funcionó de nuevo durante algunos intentos, pero ahora recibí el error otra vez ... ¿Alguien más experimentó esto?
EDITAR
No estoy seguro, pero parece que esto solo sucede en el servidor Ubuntu, no en mi máquina local (OS X) ...
He visto esto en un par de circunstancias:
Reenviar los tokens de proveedores caducados parece obtener la lista negra del token y da como resultado rechazos de
InvalidProviderToken
posteriores en lugar deExpiredProviderToken
deExpiredProviderToken
. Compruebe que los registros de los mensajes de caducidad del token. Verifica el reloj de tu sistema para asegurarte de que no estás generando tokens con marcas de tiempo sesgadas.El envío a temas no válidos invalidará todos los tokens del proveedor en la conexión (incluso los que antes eran válidos). Solo envíe los temas a los que está vinculada la clave y use solo una clave por conexión.
La documentation APN de Apple dice:
Los APN solo admiten tokens de autenticación de proveedores que están firmados con el algoritmo ES256. Los JWT no asegurados [JSON Web Tokens], o JWT firmados con otros algoritmos, se rechazan, y su servidor de proveedor recibe la respuesta InvalidProviderToken (403).
Por lo tanto, parece que el problema no es con su autenticación; En realidad, es un problema con el token web que se generó a partir de su clave.
Para mí, hubo un problema con la mala configuración. Estaba usando la ID de equipo incorrecta. Asegúrese de que toda la configuración sea correcta antes de buscar cualquier otra solución.
Tenemos exactamente el mismo problema al enviar empujes a diferentes identificaciones de equipos usando la misma conexión. Los pasos para reproducir son:
Abra una conexión a APNS y use la misma conexión para:
Envíe un envío basado en token al tema
com.companyA.xxx
de lacom.companyA.xxx
del equipo1234
: APNS acepta y entrega el envío con éxito.- Enviar un envío basado en token al tema
io.companyB.xxx
de laio.companyB.xxx
del equipo5678
: APNS respondeHTTP 400 BadRequest The device token does not match the specified topic
- Envíe de nuevo un envío basado en token al tema
io.companyB.xxx
de laio.companyB.xxx
del equipo5678
: APNS respondeHTTP 403 Forbidden: the provider token is not valid or the token signature could not be verified
.
Después de esto, es imposible enviar cualquier empuje y la conexión debe cerrarse y volver a abrirse.
La solución que terminamos haciendo es abrir una conexión por ID de equipo . La documentación de APNS no menciona nada de eso, por lo que considero esto como un error y abrí un informe de error.
para mí, la hora del servidor no era válida, al arreglar la hora del servidor se resolvió el problema