IM 应用场景中如何限制只有好友之间才能互发消息?

发布时间: 2019-10-23 22:27

回答:

功能介绍

好友关系由开发者的应用服务器自行维护好友关系,融云服务器提供消息发送能力,消息发送过程中默认不会做任何权限校验

得到 userId 后即可发送消息,例如:A 发送消息给 B,只需要把 B 的 userId 传给融云服务即可发送消息

这样易用的设计可以使开发者高度自由集成自己业务,无需关心和融云的数据同步、安全问题

但如果 userId 如果泄漏,岂不是可以越过开发者的好友关系,向任意用户发送消息?针对此中情况可采用 用户白名单服务

白名单关系是双向的,只有将对方加入自己的白名单,对方才能送消息给自己,反之一样

例如:

开通消息白名单后 A、B 之间互发消息

1、A 需要添加 B 到 A 的用户白名单中

2、B 需要添加 A 到 B 的用户白名单中

经过以上两步后方可互发消息,解决 userId 泄漏导致非好友之间可任意发送消息

注意: 用户白名单开通后,用户黑名单将实效,需要将黑名单用户数据转换至用户白名单中

功能使用

1、申请开通功能,提交工单提申请,操作路径:融云开发者后台 -> 技术支持 -> 创建工单 ,开发者后台地址:https://developer.rongcloud.cn

2、设置用户白名单需要开发者的服务器来调用,详细可参考 Server API: http://doc.rongcloud.cn/imserver/server/v1/user/whitelist