当前位置: 首页 > 知识库问答 >
问题:

在react应用程序中使用API键

楚宇
2023-03-14

我有一个React应用程序使用了两个第三方服务。应用程序是使用react-create-app启动的。

这两个服务都需要API密钥。

一个键是通过脚本标记提供的,如下所示:

<script type="text/javascript" src="https://myapi?key=MY_KEY">
</script>
const MY_OTHER_KEY = 'MY_OTHER_KEY'
let url = `http://myotherapi?key=${MY_OTHER_KEY}&q=${query}`

这就引出了我的第一个问题:

1.如何使用index.html中的变量?

在我的index.html文件中,我有两个如下所示的标记:

<link rel="manifest" href="%PUBLIC_URL%/manifest.json">
<link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico">
<script type="text/javascript" src="https://myapi?key=%MY_KEY%">
</script>

与此问题相关的是,将API密钥存储在常量中是否安全,就像我对my_other_key所做的那样?

谷歌还表示:

不要将API键存储在应用程序源树中的文件中

说我照谷歌说的做

...将它们存储在环境变量或应用程序源树之外的文件中

假设我把钥匙存放在一个外部文件里。我假设,该文件将在某个时刻被读取,其内容要么复制到包中,要么以其他方式被引用。最后,密钥在包中是否仍然可见,只是可能更难找到?这到底有什么帮助?

谢谢你的帮助!

共有1个答案

翁俊良
2023-03-14

1.如何使用index.html中的变量?

答案1:请通过添加自定义环境变量来了解如何添加作为示例显示的类型的环境变量。

2.API密钥最后不是还在捆绑包里吗?

 类似资料:
  • 问题内容: 我有一个使用两个第三方服务的React应用程序。该应用已开始使用。 这两个服务都需要一个API密钥。 一键通过脚本标签提供,如下所示: 另一个API密钥用于请求中。我将实际密钥存储在一个常量中,并用它来构成请求。像这样: Google 在处理API密钥方面的最佳做法提示是: 不要将API密钥直接嵌入代码中 这使我想到了第一个问题: 1.如何在中使用变量? 在我的文件中,我有两个看起来像

  • 我有一个运行在localhost:3000上的react应用程序,我尝试使用Java ee后端REST服务器调用REST API,运行在localhost:8080上。我已经在头球上启用了CORS。 我试着在我的组件上做一个表单提交post请求。 行中有错误: 选项http://localhost:8080/test/api/rest/service/checkcode 500(Erreur In

  • 我已经在谷歌云功能中构建了API。当我试图直接获取API时,会出现CORS错误。虽然我添加了,但失败了。 来自“http://localhost:3000”的“https://xxxxxxxx.com”已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上没有“access-control-allog-origin”标头。如果一个不透明的响应满足您的需要,请将请求的模式设置为“n

  • 问题内容: 我已经从http://code.google.com/p/facebook-java- api/ 下载了facebook-java- api-3.0.2-bin 以连接到脸书。我想在我的Java应用程序中使用此api连接Facebook。我正在为此目的开发桌面应用程序。我已经在Face book上创建了帐户并注册为开发人员。 是否可以从我的Java应用程序连接Facebook? 如果是

  • 在React Native应用程序中实现以下场景的最佳方式是什么? 向服务器发出HTTP请求,获取JSON响应和ETag头 保存此JSON响应的方式即使在用户重新启动应用程序后也会持续 每当重复此HTTP请求时,发送If-None-Match头。 当您得到“未修改”响应时,请使用持久化缓存中的版本 当您得到“成功”响应(表示响应已更改)时,使持久化缓存无效,保存新响应 React Native有现

  • 我需要在React中使用CORS节点模块,React是使用实用程序创建的。 由于它是一个实用程序,我不能调整内部并将CORS注入预配置的EXPRESS模块。 我们如何才能做到这一点?