我在后端使用REST API来推短信验证码和消息推送,现在,我也想在前端页面中使用JS SDK接收推送,但文档里提到要提供app_id和app_key,虽然文档里也提到了通过安全域名,ACL等来保护安全性,但如果有人在页面里找到了我的key和id,是否就可以用curl来乱发短信?
你可以提高你的安全性,比如增加 ACL,发短信的功能只能是某个 Role 的 User 才可以;或者可以通过云函数代理这个请求,就是写在 LeanEngine 的服务端,然后这个接口就可控了。
相关文档参考 https://leancloud.cn/docs/data_security.html
ACL 哪里指定 _User 或者 _Role 发短信?我在文档里只看到它能设置数据的访问权限,没看到过设置短信发送的,能否发个准确的链接。云函数里哪个API是发短信的或者你所说的代理?
因为不知道你具体使用的什么 SDK,以 JS SDK 为例,就在这个文档中,可以设置 ACL 权限,就是某类用户才有这个权限,所以即便别人偷去,他没有登录,就不能有发送短信的权限。https://leancloud.cn/docs/js_guide.html
使用 LeanEngine 就是相当于你禁止客户端发送短信的权限,你通过 LeanEngine 中的函数判断权限,相当于通过你自定义的 API 发送。
最简单的方法是开两个应用,当前暴露 app_id app_key 关闭短信发送的功能,然后创建另一个应用,在云代码自己提供一个发送短信的接口,用另一个应用发短信。
我想我已经明白了怎么设置权限,以及在云函数里判断用户角色。可我不知道怎么用云函数发短信,这个的文档在哪里?
嗯 短信这样做可以,除了短信,还有消息推送,我的后端还是需要使用REST API来推送消息,这个靠分成两个应用好像也搞不定吧?
LeanEngine 中可以使用 JS SDK 的。分成两个应用需要自己考虑下数据如何互通,建议都使用一个应用。
应该要全员都能发送的,因为还有一个登录验证码短信发送的功能。