pubnub 在前端公开订阅密钥和发布密钥

问题描述

我正在开发一个聊天应用程序,在前端我使用的是 reactjs

对于 reactjs,我正在使用这个库:https://www.npmjs.com/package/pubnub-react

在这里看到,订阅和发布密钥在前端公开,我的问题是,在前端添加这样的密钥是否安全?

这里是示例代码

const pubnub = new PubNub({
  publishKey: 'myPublishKey',subscribeKey: 'mySubscribeKey',uuid: 'myUniqueUUID'
});

解决方法

PubNub 访问管理器

Stephen Blum(Pubnub 的创始人兼首席技术官)对重复问题的回答:

Facebook 也有同样的问题。我可以打开您的 FB 页面并从网络选项卡复制您的 auth_key 并访问您的 Facebook 页面。您必须将 PubNub auth_key 与仅用于用户的机密一样对待。这就像允许访问数据流的会话密钥/ID,类似于 Netflix、Spotify、Facebook 和 Gmail 提供安全访问层的方式。

总而言之,您无法隐藏 PN 密钥,但可以通过启用和实施 PubNub Access Manager 来保护它们。

PubNub Access Manager High Level Process Flow

阅读docs from the link above,但之前在 Stack Overflow 上也曾多次回答过这个问题。那里的代码示例较旧,但概念相同:

此外,始终将发布/订阅密钥从您的服务器(连同身份验证密钥和 UUID)传递回客户端应用程序,而不是将它们硬编码到客户端代码中。这允许您在需要时交换密钥。它很少见,但如果您需要,它可能会非常有用。