当前位置: 首页 > 面试题库 >

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

洪宏硕
2023-03-14
问题内容

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

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

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

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


问题答案:

发送到 无效的 注册令牌时,您将收到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时,允许开发人员测试请求而无需实际发送消息。



 类似资料:
  • 有三种服务: 用户服务 发现服务 >服务授权>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 我已配置eureka服务器,该服务器已启动并运行,并且我已向以下用户服务注册: 应用属性(用户服务) 我可以看到注册的用户服务,这是可以的Spring Boot应用程序

  • 是否有一种方法可以在我的服务器上验证Firebase注册令牌,而无需往返Firebase服务器?我只是想知道它们是否有效,不一定是有效的。

  • 我刚刚为JavaEE下载了NetBeans7.3并将其与Tomcat7.0.41一起安装,一切都很顺利,我可以运行NetBeans,从IDE中启动和停止Tomcat,并随意添加和删除服务器。 但是,当我尝试创建Java web应用程序项目时,服务器列表是空的。 我运行的是Netbeans 7.3、Java1.7、Tomcat 7.0.41和Windows XP-3。

  • 我对在我的应用程序中实施Firebase云消息传递有一些疑问。 我的应用程序类似于whatsapp和facebook messenger。现在,每次有人登录时,我都会注册令牌并将其与用户关联。因此,如果有人想与用户聊天,应用程序会在数据库中搜索用户ID,我在那里找到了他的令牌。 我可以注册设备令牌,但我不确定何时应该注册。 在我的聊天中,用户通过邮件/密码注册进行注册,并且用户可以登录其他设备。

  • 我正在docker compose中使用spring云发现服务。我控制下的所有Spring Boot服务在启动时通过“EnableDiscoveryClient”进行注册。 但我的docker compose中还有其他服务,我是从他们的dockerhub图像运行的。如何注册它们(数据库、ldap等)有没有办法配置eureka以查找已定义的组件(拉)而不是客户端“推”?