【问题标题】:Pubnub-CodeNameOne library - missing methods (Access Manager)Pubnub-CodeNameOne 库 - 缺少方法(访问管理器)
【发布时间】:2016-10-09 16:50:47
【问题描述】:

我在我的社交应用项目中使用了 Pubnub 库 (Pubnub-CodeNameOne-3.7.8.cn1lib)(其中包括我使用您的精彩教程实现的实时聊天:https://www.codenameone.com/blog/building-a-chat-app-with-codename-one-part-5.html)。

但由于 Apple 将不再接受来自应用程序的 http URL 连接,我不得不加强我的应用程序的安全性,因此我决定使用 HTTPS 并激活 Pubnub 仪表板中的访问管理器功能(我遵循了 Pubnub 教程 @987654322 @)。

所以我在我的 CN1 项目中更改了 Pubnub 的实例化,例如:

pb = new Pubnub(PUBNUB_PUB_KEY, PUBNUB_SUB_KEY, SECRET_KEY, true);//enable SSL
pb.setAuthKey(USER_UIID);

不幸的是,当我通过 Pubnub 订阅/发布时,我仍然收到错误:

[错误 112-0]:身份验证失败。验证密钥不正确: {"message":"Forbidden","payload":{"channels":["myChannelID"]},"error":true,"service":"Access 经理","状态":403}

因此,我想执行管理 PAM 功能,例如授予或撤销,以解决上述错误消息问题。 但是我没有找到 Pubnub 教程中提到的 pubnub.pamGrant() 或 pubnub.pamRevoke() 方法。所以我仍然卡在这个错误上。

您知道我该如何解决这个问题吗?非常感谢您的帮助。

【问题讨论】:

  • 这似乎是 pubnub 库中的一个问题,我认为我们无法提供帮助
  • 我通过评论(已删除)将其转换为下面的正式答案。请查看并接受它是否有效,或对需要进一步说明的更多问题发表评论。

标签: ssl https codenameone pubnub


【解决方案1】:

PubNub 访问管理器和 SSL/TLS

虽然您应该使用 Access Manager to secure your channels on a per device/user basis,但通过 TLS 使用 PubNub 不需要 Access Manager(SSL 是已弃用/易受攻击的前身,这些术语通常可以互换使用)。

因此,当调用 PubNub 操作时,您的初始化代码可以正确启用 TLS(https 连接)。

pb = new Pubnub(PUBNUB_PUB_KEY, PUBNUB_SUB_KEY, SECRET_KEY, true);

但是,如果您在密钥集(发布/订阅密钥)上启用 Access Manager,则您需要为授权密钥上的通道授予权限(读取、写入和管理)。每个最终用户都应该有一个唯一的身份验证密钥,该密钥具有该用户发布、订阅、获取历史记录、状态等所需的频道的权限。

grant permissions from your secure server 使用发布、订阅和秘密密钥初始化 PubNub(执行grant API 需要秘密密钥)。使用 v4 PubNub SDK,服务器在使用密钥初始化时具有 超级管理员 权限。 v3 SDK 要求服务器授予自己访问其自己的身份验证密钥的权限,但由于 Codename One 用于移动客户端应用程序,因此您无需等待 Codename One 的 v4 PubNub SDK。我假设您将在您的服务器和我们的v4 Java SDK v4 has the super admin permissions feature when initialized with the secret key 上使用Java。 注意:文档需要更新,因为它们仍然声明即使使用密钥来初始化也需要身份验证密钥。

所以我的建议是启用 SSL (TLS),就像您已经为您的服务器和客户端所做的那样,但在短期内禁用 Access Manager。一旦您的基本功能正常工作,请将 Access Manager 和 auth-keys 的使用集成到您的服务器和客户端中。

【讨论】:

  • 它现在可以正常工作(只需禁用我现在不需要的 Access Manager 功能)。非常感谢您的详细解释。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-30
  • 1970-01-01
相关资源
最近更新 更多