You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用zaru/webpush库调用Webpush.payload_send遇FCM 403错误如何解决

Web Push 403 错误排查解决方案

这个错误的核心原因是推送请求携带的VAPID凭证,和用户订阅推送时使用的凭证、对应FCM项目的Sender ID不匹配,可按以下步骤逐一排查:

  • 核对前后端VAPID公钥一致性
    前端调用registration.pushManager.subscribe()方法时传入的applicationServerKey参数值,必须和后端调用Webpush.payload_send时传入的vapid.public_key完全一致。如果前端做了Base64 URL格式到Uint8Array的转换,要确保转换逻辑前后统一,没有出现符号替换错误(+//转-/_)、末尾等号遗漏或多删的问题。
  • 核对FCM项目VAPID密钥来源
    如果你使用FCM作为推送服务,不要自行用openssl等工具生成VAPID密钥对,必须从对应Firebase项目的控制台导出正确的密钥:

    操作路径:Firebase控制台 -> 目标项目 -> 项目设置 -> 云消息传递 -> Web配置 -> Web推送证书,从该位置生成/复制的密钥对才会和当前项目的Sender ID绑定,匹配用户订阅时关联的项目信息。

  • 清理无效旧订阅数据
    确认你测试用的订阅对象n是使用当前VAPID公钥最新生成的,不是其他项目、其他密钥对生成的历史订阅数据,旧订阅数据和新密钥不匹配必然触发403错误。
  • 最小场景验证
    可先做最简测试:用当前VAPID公钥在前端生成新的订阅记录,直接复制该订阅的endpoint、p256dh、auth值到后端调用推送接口,排除其他业务逻辑导致的参数传错问题。

内容的提问来源于stack exchange,提问作者Nico Nisaw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 12:45:04