如何验证服务器上的FCM注册令牌?
问题描述:
我收到了用于网页推送的Firebase云消息传递注册令牌。 然后我将它发送到我的服务器以保存在数据库*以后使用。 但是,我如何验证这个令牌是有效的还是假的?如何验证服务器上的FCM注册令牌?
我试过this但我认为这是用于Auth令牌而不是网页推送。
其他人可以向我的服务器发送一个随机假令牌的请求。我想在保存在数据库之前防止这种情况。
编辑:它解决了,我写了一个简单的类来快速使用FCM进行web推送。 https://github.com/emretekince/fcm-web-push
答
当发送到无效注册令牌,你应该得到200 + error:InvalidRegistration:
检查令牌传递到服务器登记的格式。确保它与客户端应用程序从注册Firebase通知时收到的注册令牌相匹配。不要截断或添加其他字符。
这是响应当您尝试发送一个简单的卷曲请求,其中所述登记令牌只是随机发:我在"ABC"
增加,在registration_ids
参数
curl --header "Authorization: key=$[your_server_key_here]" \
--header Content-Type:"application/json" \
https://fcm.googleapis.com/fcm/send \
-d "{\"registration_ids\":[\"ABC\"]}"
通知。如果它是有效的注册令牌,但没有与您的项目相关联,则可能会收到200 + error:NotRegistered。
你可以尝试从您的服务器发送测试消息看应答,而不使用dry_run参数发送朝着该设备的实际消息:
此参数,当设置为true,允许开发人员测试没有实际发送消息的请求。
答
一种方法是发送消息,dry_run
option = true,如AL所述。在另一个答案。
另一种方法是使用实例ID服务器API:
https://developers.google.com/instance-id/reference/server