WebPushError(BadJwtToken):iOS设备Web推送通知认证问题求助
解决iOS Web推送的BadJwtToken错误
错误信息:WebPushError - Received unexpected response code BadJwtToken
针对你遇到的问题,Apple端确实需要额外的配置和合规检查,以下是具体的解决要点:
- VAPID签名的严格合规性
Apple的APNs Web推送服务对VAPID的要求比FCM更苛刻:- 必须使用ES256算法生成VAPID密钥对,RS256算法在Apple端会直接触发BadJwtToken错误,很多默认用RS256的库需要手动指定算法。
- JWT的
aud字段必须严格匹配Apple推送服务的根URL:https://web.push.apple.com,不能填写FCM端点或其他自定义值。
- Apple开发者后台配置
- 关联你的Web应用到Apple开发者账号:在“Certificates, Identifiers & Profiles”中,为网站域名对应的标识符开启“Push Notifications”权限,完成账号与Web应用的绑定。
- 配置网站manifest:在
manifest.json中添加gcm_sender_id字段,值固定为"103953800507",这是Apple要求的Web推送标识,即使不使用FCM也必须配置。
- 环境与请求检查
- 确保推送请求发送到正确的Apple端点:
https://web.push.apple.com,而非其他第三方代理。 - 正式环境必须使用有效的SSL证书,本地测试仅
localhost可豁免。 - 验证JWT的
exp(过期时间)字段,不能设置过长或已过期,建议设置在12小时以内。
- 确保推送请求发送到正确的Apple端点:
内容的提问来源于stack exchange,提问作者Ross Rawlins
相关产品推荐
相关产品推荐

