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

Android 启用历史记录功能的Pubnub用户级访问控制,android,pubnub,Android,Pubnub,是否可以在启用历史记录的情况下在用户级别使用Pubnub Access Manager?对于我的Android应用程序,我想将频道访问权限限制在距离某个位置(代表该频道的位置)2英里以内的特定用户。但是,我希望保持历史记录功能处于启用状态 在Pubnub API参考中,“History:要访问历史消息,您必须在subscribe_密钥或通道级别授予完全读取权限。当用户具有适当权限时,他们可以访问存储的任何数据。如果他们没有访问权限,PAM将返回403。”我知道,更一般的权限胜过更具体的权限(即,

是否可以在启用历史记录的情况下在用户级别使用Pubnub Access Manager?对于我的Android应用程序,我想将频道访问权限限制在距离某个位置(代表该频道的位置)2英里以内的特定用户。但是,我希望保持历史记录功能处于启用状态

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

因此,如果您想要用户级访问控制,您不能使用历史记录功能吗?

PubNub访问管理器-
subscribe
&
History
需要
读取
权限 要在频道上调用
history
,用户必须具有
read
权限。对于
订阅
中的
历史记录
没有单独的权限。此
read
权限允许调用
subscribe
history

您是正确的,如果您在频道级别授予
read
权限(这意味着不在授予中包含和验证密钥),则任何人都可以在该频道上调用
subscribe
history

在子密钥级别授予
read
(没有频道或auth key参数的授予)将授予每个人在任何频道上调用
subscribe
history
的权限

因此,您只需在用户的身份验证密钥上为频道授予
read
,他们就可以获得历史记录,而且他们也可以订阅

如果您只想让他们获取一次历史记录,但无法订阅,则:

  • 只需代表用户查看服务器调用历史记录,并根据从用户到服务器的GET将结果传递回用户即可
  • -或-

  • 在用户的授权键上,授予用户对频道的
    read
    一分钟
    ttl
    。这将给他们足够的时间调用
    历史记录
    ,而
    订阅
    的时间不多
  • 如果你根本不想让用户订阅,我会选择选项1