撤销和授予不按预期工作

时间:2017-06-05 00:20:56

标签: python pubnub

我正在尝试在通道'test'上进行用户读/写访问一段指定的时间,然后在经过一段时间后删除这些权限。

我试图撤销使用grant并允许令牌通过其ttl自然过期,但没有一个像我期望的那样工作。

在我的服务器上,我有:(已删除密钥)

pnconfig = PNConfiguration()                
pnconfig.publish_key = 'pubkey'
pnconfig.subscribe_key = 'subkey'
pnconfig.secret_key = 'skey'
pubnub = PubNub(pnconfig)

pubnub.subscribe().channels('test').with_presence().execute()

pubnub.grant().read(False).write(False).manage(False).ttl(0).sync()
# have also tried
#pubnub.grant().read(False).write(False).manage(False).channels('test').ttl(0).sync()

我稍后使用随机生成的密钥“userkey”授予任意用户权限。即使我使用2的ttl,它的寿命也会超过2分钟。

# ttl(1) should last for 1 minute but instead is instantly expired 
# so I am using ttl(2) instead. I would prefer the user have permissions
# revoked after 1 minute
pubnub.grant().read(True).write(True).manage(False).channels('test').auth_keys(userkey).ttl(2).sync()

由于ttl的问题,我试过在它应该到期之后再次调用grant但是无济于事。即使完成此操作,用户仍然可以读/写:

pubnub.grant().read(False).write(False).manage(False).channels('test').auth_keys(userkey).ttl(0).sync()

此后,客户端使用生成的用户密钥作为其身份验证密钥进行连接。这是在javascript中完成的,如下所示:

 pubnub = PUBNUB.init({
    publish_key     : 'pubkey',
    subscribe_key   : 'subkey',
    auth_key        : userkey,
    leave_on_unload : true
 });

0 个答案:

没有答案