【问题标题】:Pubnub user-level access control with History feature enabled启用历史记录功能的 Pubnub 用户级访问控制
【发布时间】:2016-04-14 23:22:08
【问题描述】:

是否可以在启用历史记录的用户级别使用 Pubnub 访问管理器?对于我的 Android 应用程序,我想将某个频道的访问权限限制在距离某个位置 2 英里以内的特定用户(代表该频道的位置)。但是,我想保持历史记录功能打开。

在 Pubnub API 参考中,“历史记录:要访问历史消息,您必须在 subscribe_key 或频道级别授予完全读取访问权限。当用户拥有适当的权限时,他们可以访问存储的任何数据。如果他们没有访问权限PAM 将返回 403。”而且我知道更一般的权限胜过更具体的权限(即,如果您在 subscribe_key 或频道级别授予访问权限,那么这会否决用户级别的权限)。

如果你想要用户级访问控制,你能不使用历史功能吗?

【问题讨论】:

    标签: android pubnub


    【解决方案1】:

    PubNub 访问管理器 - subscribe & history 需要 read 权限

    要在频道上调用history,用户必须拥有read 权限。 historysubscribe 没有单独的权限。这个read 权限允许调用subscribehistory

    而且你是对的,如果你在频道级别授予read 权限(这意味着在授权中不包括授权密钥),那么任何人都可以在该频道上调用subscribehistory

    在子密钥级别授予read(在没有通道或auth-key 参数的情况下授予)将允许每个人在任何通道上调用subscribehistory

    因此,您只需为用户的 auth-key 上的频道授予 read 即可让他们获取历史记录 - 他们也可以订阅。

    如果您只想让他们获取历史记录一次然后无法订阅,那么:

    1. 只需代表用户获取服务器调用历史记录,然后根据从用户到您的服务器的 GET 将结果传回给用户。

    - 或 -

    1. 在用户的授权密钥上将用户read 授予频道ttl 1 分钟。这将使他们有足够的时间打电话给history,而subscribe 的时间不多了。

    如果您根本不想让用户订阅,我会选择选项 1。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-11
      • 2014-06-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多