默认流式聊天 returns 所有频道

Stream Chat returns all channels by default

我正在使用 React Stream Chat 组件,默认情况下我会获取所有频道,即使是设置用户不是其成员的频道。这是我设置用户的方式:

    await client.setUser(
        {
            id: user.id.toString(),
            name: user.name,
        },
        user.streamToken,
    );

这就是聊天组件的样子。

    <Chat client={chatClient}>
        <ChannelList />
        <Channel>
            <Window>
                <MessageList />
                <MessageInput />
            </Window>
            <Thread />
        </Channel>
    </Chat>

所有频道都是由两个成员创建的,文档说:

You only need to specify the members if you want to limit access of this chat to these members and subscribe them to future updates

登录频道时,我可以验证我正在获取我不是会员的频道。 这是预期的行为还是我遗漏了什么?

将过滤器传递给 ChannelList 有一个解决方法:

    const filters = { members: { $in: [currentUser.id.toString()] } };

您可能关闭了权限检查。您可以在 Stream Dashboard 上启用它们。

在"Disable Permissions Checks"下。切换它应该会激活权限检查并显示只有您是其中成员的所有频道。

您仍然希望在您的应用中保留过滤器。