启用了历史记录功能的Pubnub用户级访问控制

时间:2016-04-14 23:22:08

标签: android pubnub

是否可以在启用了历史记录的用户级别使用Pubnub Access Manager?对于我的Android应用程序,我想将通道的访问权限仅限于某个位置2英里范围内的某些用户(代表该频道的位置)。但是,我想打开历史记录功能。

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

如果您想要用户级访问控制,那么您是否可以使用历史记录功能?

1 个答案:

答案 0 :(得分:1)

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

要在频道上呼叫history,用户必须拥有read权限。来自history的{​​{1}}没有单独的权限。此subscribe权限允许您同时调用readsubscribe

你是对的,如果你在频道级别授予history权限(这意味着在授权中不包括授权和授权密钥),那么任何人都可以致电readsubscribe在那个频道上。

在子键级别授予history(没有频道或auth-key参数的授权),每个人都有权在上调用readsubscribe信道

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

如果您只是希望他们获得历史记录一次然后无法订阅,那么:

  1. 代表用户拥有服务器调用历史记录,并根据从用户到服务器的GET将结果传回给用户。
  2. - 或 -

    1. 在用户的身份验证密钥上将用户read授予该频道1分钟read。这样就可以给他们足够的时间来拨打ttl而不用花费很多时间history
    2. 如果您不希望允许用户订阅,我会使用选项1。