【问题标题】:Multiple FCM Senders: Programmatically load Sender ID and Server Key on Mobile App多个 FCM 发件人:以编程方式在移动应用上加载发件人 ID 和服务器密钥
【发布时间】:2017-04-25 15:52:18
【问题描述】:

作为我们解决方案的一部分,我们在每个客户站点部署 FCM“应用服务器”。每个客户站点都需要生成自己的发件人 ID 和服务器 ID,以便与我们的应用一起使用。

默认的 FCM 实现将 Sender ID 和 Server Key 放在 plist (iOS) / json (Android) 中,在编译时集成到应用程序代码中。但是,由于我们有多个当前客户并将有新客户,因此我们的移动应用需要能够向客户应用服务器发出服务调用,检索 Sender ID 和服务器密钥,并在运行时将它们加载到 FCM 中。

我们在getToken附近看到了一些文档来完成向多个发件人注册,但我们只需要向1个发件人注册并完全绕过plist/json。

问题:我们如何以编程方式加载发件人 ID 和服务器密钥,而不是使用 GoogleService-Info.plist (iOS) / google-services.json (Android)。

如需了解更多信息,请参阅我们最近与同一工作流程相关的question about security

【问题讨论】:

    标签: firebase google-cloud-messaging apple-push-notifications firebase-cloud-messaging google-play-services


    【解决方案1】:

    将 Sender ID 和 Server Key 放在 plist (iOS) / json (Android) 中,在编译时集成到应用代码中

    在您的客户端应用程序中没有包含服务器密钥的地方。顾名思义,Server Key 保存在 App Server 端。您从 Firebase 控制台获取的 json/plist 文件中包含的唯一发件人 ID 是您项目的发件人 ID。 FCM 不使用 google-services.json 文件中的任何类型的 API 密钥(请参阅我的回答 here)。

    我们如何以编程方式加载发件人 ID 和服务器密钥,而不是使用 GoogleService-Info.plist (iOS) / google-services.json (Android)。

    注册新服务器时,您只需要发件人 ID。然后只需致电getToken(authorizedEntity, scope)。这可能是可能的,通过实现一个从您的应用服务器端获取有效发件人列表的功能,然后在客户端有一个副本,如果包含新的发件人,让您的应用授权它是一个有效的发件人。

    【讨论】:

    • 那么我们可以跳过将 json/plist 文件添加到移动应用程序项目中吗?似乎没有必要......尤其是因为我们需要为多个项目调用“getToken”。
    • 我自己没有尝试过,但根据this post,这是可能的,只要您能够提供应用程序所需的 ID(如默认发件人 ID)。
    猜你喜欢
    • 2021-06-01
    • 1970-01-01
    • 2012-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-16
    相关资源
    最近更新 更多