Push notification 如何防止用户恶意呼叫华为推送套件';s消息接收函数API何时使用该函数?

Push notification 如何防止用户恶意呼叫华为推送套件';s消息接收函数API何时使用该函数?,push-notification,huawei-mobile-services,huawei-push-notification,Push Notification,Huawei Mobile Services,Huawei Push Notification,由于谷歌禁止华为新设备使用GMS,我的应用程序的华为手机用户经常抱怨他们无法接收通知消息。所以我最近开始使用华为推送套件。整合过程是顺利的。我已经完成了集成,并在华为AppGallery上发布了我的应用程序。用户现在可以接收通知消息 但现在我发现了与推送数据相关的以下问题: 使用FCM,我可以使用BigQuery进一步分析消息推送数据,例如发送消息的数量和接收消息的数量。例如,我可以执行以下语句来收集应用程序发送的消息数量的统计数据: SELECT app_name, COUNT(1) FROM

由于谷歌禁止华为新设备使用GMS,我的应用程序的华为手机用户经常抱怨他们无法接收通知消息。所以我最近开始使用华为推送套件。整合过程是顺利的。我已经完成了集成,并在华为AppGallery上发布了我的应用程序。用户现在可以接收通知消息

但现在我发现了与推送数据相关的以下问题:

使用FCM,我可以使用BigQuery进一步分析消息推送数据,例如发送消息的数量和接收消息的数量。例如,我可以执行以下语句来收集应用程序发送的消息数量的统计数据:

SELECT app_name, COUNT(1)
FROM `project ID.firebase_messaging.data`
WHERE
_PARTITIONTIME = TIMESTAMP('date as YYYY-MM-DD')
AND event = 'MESSAGE_ACCEPTED'
AND message_id! =''
GROUP BY 1;
我阅读了华为推送套件文档,但没有找到类似BigQuery的功能

但是,我找到了消息收据,它也可以用于收集统计数据。因此,我开发了一个收据API,并在Push Kit控制台上对其进行了配置。经过测试,我现在可以接收推送数据了


现在,当我计划发布我的应用程序时,我需要验证调用方,因为消息接收API在公共网络上是公开的。如何验证呼叫者以防止恶意API调用?

华为推送套件的消息接收功能允许设置用户名和密码进行身份验证。您可以使用此函数来防止恶意API调用。程序如下:

  • 在华为Push Kit控制台上配置消息接收时设置用户名和密码
  • 当华为调用您的回执API时,X-Huawei-CALLBACK-ID参数将添加到HTTP头中。参数值由以下部分组成:
  • a<代码>时间戳:系统的UTC时间戳

    b<代码>当前值:随机UUID

    c<代码>值:在使用HMAC-SHA256算法中的设置密码对待加密字符串(包括
    时间戳
    的值、
    nonce
    的值和回调用户名)进行加密后,最终获得的字符串,然后使用Base64进行编码

    例如:

    timestamp=1563105451261;nonce=a07bfa17-6d82-4b53-a9a2-07cfef5ceef1;value=E4YeOsnMtHZ6592U8B9S37238E+Hwtjfrmpf8AQXF+c=
    
  • 接收请求时,Receive API可以获取HTTP头中的X-HUAWEI-CALLBACK-ID值,以检查调用方是否有效

  • 有关更多信息,请访问

    我想我们讨论的是:。如果我理解正确的话,是华为服务器与您的收据API进行通信。您可以限制除来自华为域之外的所有呼叫者。您有关于FCM BigQuery和华为推送套件消息接收的相关信息吗?@LilaGreco请参阅本文,[link]()这如何防止攻击者在其请求中包含相同的头?在您描述的内容中,我没有看到任何有关用户和密码的信息。@m0skit0 OK。我添加了关于密码的信息。谢谢!但是,您链接的文档中没有说明此信息,您是否有此链接?