react-native - 尝试在环境变量中插入密钥并将它们用于 GetStream.io 提要时出现错误
问题描述
我将 GetStream.io 用于我的应用程序,正好用于新闻提要。当我只是尝试将我的 api 密钥和令牌直接插入 StreamApp 组件时,我收到一个错误,我不能公开使用它们,因为存在有人可以窃取它的风险。所以我发现是使用 babel-plugin-transform-inline-environment-variables 包。所以这就是我的代码的样子:
import React, { Component } from 'react';
import { StreamApp, FlatFeed, } from 'react-native-activity-feed';
import { Text, View, SafeAreaView } from "react-native";
import firebase from "react-native-firebase";
var stream = require('getstream');
export default class newsFeed extends React.Component {
constructor(props) {
super(props);
this.state = {
appid: process.env['REACT_APP_API_ID'],
apptoken: process.env['REACT_APP_TOKEN'],
apikey: process.env['REACT_APP_API_KEY']
};
}
render() {
return (
<SafeAreaView style={{flex: 1}} forceInset={{ top: 'always' }}>
<StreamApp
apiKey={this.state.apikey}
appId={this.state.appid}
token={this.state.apptoken}
/>
</SafeAreaView>
)
}
}
你怎么理解,prcoess.env 变量保存在 .env 文件中。该文件连接到 .babelrc 文件。
问题是我收到一个错误:'无法读取未定义的属性'数据'。
我的错误是什么,我该如何解决?
解决方案
因为您使用的是 Stream 客户端(浏览器),所以您需要使用用户令牌而不是 api 密钥和秘密与 Stream API 进行通信。
用户令牌必须使用您的应用程序的凭据在受信任的环境(例如您的服务器/云功能)上创建并传递给您的客户端。
var stream = require('getstream');
client = stream.connect(apiKey, apiSecret, appId);
const userToken = client.createUserToken('the-user-id');
推荐阅读
- c# - SqlDataReader 因未知原因关闭
- ibm-datapower - 在 API Connect 中为特定字段添加分析
- wso2 - 如何在芭蕾舞演员中使用 jsonpath?
- ionic-framework - 如何在角度项目中使用离子脚本
- python - 如何用不同的脚本读写同一个串口?
- sql - Oracle 对象:如何显示选择查询中的所有字段?
- azure-resource-manager - 使用 ARM 模板创建 Azure Databricks 令牌
- javascript - Vue.js 打印原始 html 并调用组件方法
- android - 从 URL Google Map API 或 SDK 从搜索区域的功能 ID 获取位置?
- html - 如何在 CSS 中的垂直列表项/列中实现响应高度?