一尘不染

如何在服务器上验证FCM注册令牌?

node.js

我获得了用于Web推送的Firebase Cloud
Messaging注册令牌。然后,我将此邮件发送到服务器以保存在数据库中,以供以后推送。但是,如何验证此令牌有效或伪造的?

我已经尝试过了,但是我认为这是针对Auth令牌而不是针对Web推送的。

其他人可以将随机伪造令牌的请求发送到我的服务器。我想防止这种情况,然后再保存到数据库中。

编辑:已解决,我编写了一个简单的类来使用FCM快速进行Web推送。 https://github.com/emretekince/fcm-web-
push


阅读 607

收藏
2020-07-07

共1个答案

一尘不染

发送到 无效的 注册令牌时,您将收到200
+错误:InvalidRegistration

检查传递给服务器的注册令牌的格式。确保它与客户端应用程序通过Firebase Notifications注册收到的注册令牌匹配。不要截断或添加其他字符。

当您尝试发送简单的cURL请求(其中注册令牌只是随机生成)时,这是响应:

curl --header "Authorization: key=$[your_server_key_here]" \
       --header Content-Type:"application/json" \
       https://fcm.googleapis.com/fcm/send \
       -d "{\"registration_ids\":[\"ABC\"]}"

注意,我"ABC"registration_ids参数中添加了。如果它是有效的注册令牌,但未与您的项目关联,则可能会收到200 +
error:NotRegistered

您可以尝试通过使用dry_run参数从服务器发送测试消息以查看响应,而无需向设备发送实际消息:

将此参数设置为true时,允许开发人员测试请求而无需实际发送消息。

2020-07-07