PubNub 通配符通道组管理授权-Java SDK v4


本文向大家介绍PubNub 通配符通道组管理授权-Java SDK v4,包括了PubNub 通配符通道组管理授权-Java SDK v4的使用技巧和注意事项,需要的朋友参考一下

示例

在将频道添加到频道组/从频道组中删除频道时,您必须具有manage这些频道组的权限。但是,您绝对不应向客户授予manage他们将要订阅的频道组的权限。如果他们这样做,则他们可以将所需的任何频道添加到其频道组中,并立即拥有对该频道的读取权限。

因此,这就是为什么您的服务器必须是唯一拥有manage许可权的实体的原因。但是您的服务器将需要manage对每个单个频道组具有权限,以便它可以代表所有客户端向/从频道组添加/删除频道。

但是授予manage每个频道组可能有点乏味。取而代之的是,您可以manage在一次通配符授予中授予所有通道组(现有的和要创建的)。

// 使用带有密钥的PNConfiguration初始化PubNub实例
PNConfiguration pnConfiguration = new PNConfiguration();
pnConfiguration.setSubscribeKey("my_subkey")
pnConfiguration.setPublishKey("my_pubkey");
// 密钥允许服务器授予“授予”权限
pnConfiguration.setSecretKey("my_secretkey");
pnConfiguration.setSecure(true);
// 设置服务器的身份验证密钥
pnConfiguration.setAuthKey("server_authkey");
PubNub pubnub = new PubNub(pnConfiguration);

// grant read and manage using the channel group wildcard - ":" 
// 与永远ttl 
pubNub.grant()
    .channelGroups(Arrays.asList(":")) // 冒号(:)是频道组通配符
    .manage(true) // 在频道组之间添加/删除频道
    .read(true) // 如果服务器需要订阅或立即在频道组上进行操作
    .ttl(0) // 0 =永久授予
    .async(new PNCallback<PNAccessManagerGrantResult>() {
        @Override
        public void onResponse(PNAccessManagerGrantResult result, PNStatus status) {
            // 检查拨款成功与否的状态
        }
    });

从这里开始,您的服务器将能够向您的应用创建的任何频道组添加频道或从中删除频道。