【发布时间】:2021-11-01 14:36:24
【问题描述】:
我正在尝试通过结帐(使用贝宝)开发一种付款方式,以获取不和谐机器人的付费计划。然后,当用户付款时,子“prem”设置为true,如下所示:
paypal.Buttons({
style: {
color: 'blue',
shape: 'pill'
},
createOrder:function (data, actions){
return actions.order.create({
purchase_units: [{
amount:{
value: '1.00'
}
}]
});
},
onApprove:function (data, actions){
return actions.order.capture().then(function (details){
console.log(details)
database.ref('server/' + guildId + '/prem').set(true); //here
})
}
}).render('#paypal-payment-button');
问题是我的实时数据库没有安全规则(它接受所有请求):
{
"rules": {
".read": true,
".write": true,
}
}
这是我的数据库结构:
{
"server": {
"858941532694118431": {
"prem": true, //premium plan activated
"settings": {
"error": "on",
"warnings": "on"
}
}
}
}
由于我的规则允许所有人访问,因此每个用户都可以在控制台中编写此代码以激活保费而无需支付:
database.ref('server/' + serverId + '/prem').set(true);
我怎样才能设置我的安全规则,以便没有用户可以修改该孩子,而只有自动系统可以?有办法吗?
【问题讨论】:
标签: javascript firebase firebase-realtime-database paypal firebase-security