首页 > 解决方案 > pubnub 在前端公开订阅密钥和发布密钥

问题描述

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

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

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

在这里你去示例代码:

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

标签: pubnub

解决方案


PubNub 访问管理器

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

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

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

PubNub Access Manager 高级流程

从上面的链接中阅读文档,但是这个问题之前在 Stack Overflow 上也已经回答过几次了。那里的代码示例较旧,但概念相同:

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


推荐阅读