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

如何在PHP/Laravel中验证从Firebase获取的设备令牌有效性?

验证Firebase Cloud Messaging设备令牌有效性的方法

因为FCM没有专门的令牌验证API,你可以通过以下两种实用方式在存入数据库前验证token的有效性:

1. 发送静默测试通知(推荐)

发送一条不会打扰用户的低优先级静默通知,根据FCM的响应判断token是否有效:

  • 构造POST请求到FCM发送端点:https://fcm.googleapis.com/fcm/send
  • 请求头需包含:
    • Authorization: key=你的FCM服务器密钥
    • Content-Type: application/json
  • 请求体示例(适配Android和iOS的静默通知):
{
  "to": "待验证的Device Token",
  "priority": "low",
  "content_available": true,
  "data": {
    "test_validation": "true"
  }
}
  • 解析响应结果:
    • 如果返回的results数组中没有错误字段,说明token有效
    • 若出现InvalidRegistration或NotRegistered错误,直接判定该token无效,无需存入数据库

2. 利用FCM批量发送接口批量验证

如果需要一次性验证多个token,可以使用批量发送接口:

  • 请求体改为包含registration_ids字段(传入多个待验证token)
{
  "registration_ids": ["token1", "token2"],
  "priority": "low",
  "content_available": true,
  "data": {
    "test_validation": "true"
  }
}
  • 响应中每个token对应一个结果对象,根据错误码筛选无效token

注意事项

  • 不要频繁调用测试接口,FCM有请求频率限制,避免触发限流
  • 静默通知不会在用户设备上弹出通知,仅用于验证token有效性
  • 验证通过后再将token存入数据库,后续如果推送时收到NotRegistered错误,要及时从数据库中移除该token

内容的提问来源于stack exchange,提问作者Atlas-Pio

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 11:55:13