1.我使用iOS sdk的AVHistoryMessageQuery的queryWithConversationId,可以查到别人对话里面message。这个很危险。所以我去打开了聊天记录查询签名认证。但是这样的话,我的AVIMSignatureDataSource没有被call到啊?怎么回事?

2.第二种情况是用AVIMConversationQuery,可以查到任意的对话,及时在禁止了_Convesation表的
find权限。client端还是可以查到别人的对话,然后用AVIMConversation.queryMessagesWithLimit就可以查到聊天记录。这样可以看到别人的对话了。。。

综上所述:怎么保证聊天记录的访问权限?ios SDK 是最新的3.1.7
@ttang

目前 SDK 对 IM 1.0 没有签名过程。如果可能,你们可以 IM 2.0,使用 AVIMConversation 的 query 接口,SDK 会有处理签名过程。

我现在使用的应该是IM2.0,怎么才能知道自己用的是哪个版本?

能访问 -[AVIMConversation queryMessage***] 接口吗?

可以访问的。问题是我可以query别人对话里面的message

是的,这个接口没有做权限控制。建议使用 -[AVIMConversation queryMessage***] 接口,然后使用签名来控制权限,这样就不会 query 别人对话里面的 message 了。

okay, 我试了一下,
1. 使用[AVIMConversation queryMessage***] 接口只能找到自己所在的对话的message。
2. 可以用AVIMConversationQuery来找到所有的Conversation,包括别人的,但是即使找到了别人的AVIMConversation也不能query message

这个理解对吗?

谢谢大神!