作为解决方案的一部分,我们在每个客户网站上部署FCM" App Server"。每个客户网站都需要生成自己的发件人ID和服务器ID,以与我们的应用一起使用。
默认的FCM实现将发件人ID和服务器键放入PLIST(ios(/JSON(Android(中,该键在编译时集成到应用程序代码中。但是,由于我们有多个当前客户并将拥有新客户,因此我们的移动应用需要能够对客户应用服务器进行服务调用,检索发件人ID和服务器密钥,并在运行时加载这些服务。
我们已经看到了有关GetToken的一些文档,以完成多个发件人的注册,但是我们只需要注册1个发件人,然后完全绕过PLIST/JSON。
问题:我们如何编程加载发件人ID和服务器密钥,而不是使用googleservice-info.plist(ios(/google-services.json(android(。
。有关更多上下文,这是我们最近有关同一工作流的安全性的相关问题。
将发件人ID和服务器键放在PLIST(ios(/json(android(中,该(android(在compile time
中集成到应用程序代码中
您的客户端应用程序中没有任何地方包含服务器密钥。就像名称所暗示的那样,服务器密钥保留在应用服务器端。您从Firebase控制台获得的JSON/PLIST文件中包含的唯一发件人ID是您项目的发件人ID。FCM不使用Google-services.json文件中的任何类型的API键(请参阅我的答案(。
我们如何编程加载发件人ID和服务器密钥,而不是使用googleservice-info.plist(ios(/google-services.json(android(。
注册新服务器时,您只需要发件人ID。然后只需致电getToken(authorizedEntity, scope)
即可。通过实现一个函数,该函数从您的应用服务器端获取有效发件人列表,然后在客户端列出一个副本,如果包含新的发件人,请使用您的应用授权它是有效的发件人。