2017-03-13 42 views
0

在使用Firebase云消息传递(FCM)的Firebase项目中,有一个用于云消息传递的自动生成的服务器密钥。 FCM文档并不表示只能有一台服务器使用该自动生成的密钥(至少我能找到)。但是,documentation明确指出应该安全地存储服务器密钥。是否有可能让多个服务器共享一个Firebase云消息传递服务器密钥?

第一个问题:我错过了单服务器记录的限制吗?

如果没有明确的限制,但它发生,我认为FCM可能在检查建立,以确保对于给定的火力地堡计划的请求发送消息确实来自只有一个IP地址,拒绝来自多个IP地址的请求。

第二个问题:是单服务器限制隐式?

如果可能存在多个服务器,每个服务器都在尽职地保护服务器密钥的隐私以及记录为“最佳(和安全)实践”的任何其他服务器,则会发生

的HTTP标题必须包含以下标题:

授权:我FCM可能基于此基础上声明的服务器类型限制的请求键= YOUR_SERVER_KEY

确认这是服务器关键,其val ue在Firebase控制台设置窗格的云消息传递选项卡中可用。 FCM拒绝Android,iOS和浏览器密钥。

最后一个问题:什么声明“Android,iOS和浏览器密钥被FCM拒绝”。意味着在服务器类型上下文中?如果此声明表示来自移动设备(Android或iOS)或浏览器的请求会被FCM拒绝,那会更清楚。我正在就这一点进行详细阐述,但不是讨论。

回答

1
  1. 据我所知,对于FCM没有单台服务器的限制。还有Receiving Messages from Multiple Senders的主题,在这种情况下,每个发件人(如果是服务器)必须有权访问您的服务器密钥才能发送到您的客户端应用程序。因此,我相当肯定没有检查的IP地址(这限制发送者发送消息,如果它不同于平时),除非你自己设置它(我' m不知道它是否仍然可以通过API Console进行设置)。这也是为什么服务器密钥应该保密的原因之一。为了防止未经授权的用户滥用它。

  2. 我不确定这里有什么问题。您能否详细说明“我发现FCM可能会限制基于服务器类型的请求”。

  3. FCM之前,曾经有不同类型的API密钥,这是服务器的Android的iOS浏览器键。无论GCM的类型如何,开发人员都可以使用他们所需的密钥,但是限制仅限于服务器密钥。有关更多详细信息,请参阅我的回答here

    的选项也可以创建一个新的API密钥时前,但目前,选择创建API密钥时,它会自动生成,你会被给予选项与下列之一的限制:

    • 无(默认)
    • HTTP引荐(网站)
    • IP地址(网络服务器,cron作业等)
    • Android应用
    • iOS应用
+1

您对多个发送者的链接是什么,我做了小姐,使得它非常清楚,多台服务器可以共享一个服务器密钥。但是该文档指出有100个多发件人的限制。这是否意味着只有100台服务器?或者你会解释这意味着可以使用数千个服务器,但只有100个具有唯一的发件人ID值? – pajato0

+1

从您的观点来看,Android,iOS和浏览器重要评论似乎适用于传统使用,但与FCM的新采用者无关。正确?我的问题是试图辨别Google Cloud Messaging服务器是否过滤了某些类型的请求者。 – pajato0

+0

发件人ID确实代表发件人,所以是的。对。 Android,iOS,浏览器键是以前的API键类型,但现在不再适用。 AFAIK,没有任何检查来自请求来自何处,因为只要请求具有服务器密钥,它就已经*安全*了。 –

相关问题