我想从我网站上的客户端生成消息,并将消息发送到目标设备。使用像这样的ajax(jquery)请求很简单:
$.ajax({
url: 'https://fcm.googleapis.com/fcm/send',
type: 'POST',
contentType: "application/json",
dataType: 'json',
data: JSON.stringify({
"notification": {
"title": title,
"body": msg,
"sound": "default"
},
"to": "XXXXXXXXXXXX"
}),
beforeSend: function(xhr) {
xhr.setRequestHeader('Authorization', 'key=YYYYYYYYYY');
}
});
但是,我不需要保留XXXXXXXXXXXX设备密钥,并且YYYYYYYYYY API密钥是私有的吗?如果没有,我担心人们会开始抓住这些并从完全不相关的服务中发送垃圾邮件?
答案 0 :(得分:7)
这绝对不安全。您传递到Authorization
标头的密钥称为服务器密钥,因为您只应该在应用服务器(或其他一些服务器)上使用它你直接控制的过程。)
如果您将相同的密钥放在每个客户端设备上运行的代码中,则意味着恶意用户可以(因此将)能够复制您的服务器密钥并使用该密钥向您的应用发送消息&# 39;用户代表你。
Firebase云消息传递文档在其section on FCM Server roles中对此进行了解释。我们还有blog post that explains how to send device-to-device messages on Android using Cloud Messaging, the Realtime Database and a Node.js script on your back-end, app server。