【问题标题】:Is it possible to integrate GetStream.io with a React Native app built with Create React Native App without ejecting?是否可以将 GetStream.io 与使用 Create React Native App 构建的 React Native 应用程序集成而不弹出?
【发布时间】:2017-08-21 02:34:20
【问题描述】:

我正在尝试使用 getstream.io 的客户端功能 (特别是提要拉取和实时更新)在使用 react-native 构建的本机应用程序上构建流。当我尝试使用从我的服务器传递的令牌在 javascript 代码中初始化客户端时,我收到错误:

[Error: Missing app id, which is needed to subscribe, use var client = stream.connect(key, secret, appId);]

但是,当我添加秘密和 appId 时(出于测试目的,我会非常警惕这样的部署)我收到错误:

[Error: You are publicly sharing your private key. Dont use the private key while in the browser.]

有没有办法让客户端版本使用 Expo(Create React Native App 默认)运行而不从 Create React Native App 弹出?

【问题讨论】:

  • 出于好奇,您将如何在不将密钥放入应用程序的情况下使用此本机应用程序? (顺便说一下,我们不推荐)
  • 本机应用程序与 Rails 服务器通信以传递来自登录用户的令牌(使用流的 Ruby 客户端)并使用它初始化 feed 变量。

标签: node.js react-native getstream-io create-react-native-app


【解决方案1】:

出于安全原因,您不能使用 JS 客户端生成令牌客户端,因为这需要共享您的 Api Key Secret。

要走的路是让您的后端创建特定于提要的令牌并将它们发送到您的客户端应用程序。

服务器端(Ruby):

require 'stream'
client = Stream::Client.new('YOUR_API_KEY', 'API_KEY_SECRET')
feed = client.feed('user', '1')
token = feed.token

客户端(JS):

client = stream.connect('YOUR_API_KEY', null, 'SITE_ID');
user1 = client.feed('user', '1', token);

【讨论】:

  • Tommaso- 这是我目前拥有的设置,缺少的组件是 null(而不是省略)秘密。这似乎已经解决了它,我现在可以继续前进。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-27
  • 1970-01-01
  • 2019-01-23
  • 2018-12-19
  • 2018-12-19
  • 1970-01-01
相关资源
最近更新 更多