相关疑难解决方法(0)

在react应用程序中使用API​​密钥

我有一个使用两个第三方服务的React应用程序.该应用程序已开始使用react-create-app.

这两项服务都需要API密钥.

一个密钥通过脚本标记提供,如下所示:

<script type="text/javascript" src="https://myapi?key=MY_KEY">
</script>
Run Code Online (Sandbox Code Playgroud)

另一个API密钥用于请求中.我将实际的密钥存储在一个常量中,并使用它来形成请求.像这样:

const MY_OTHER_KEY = 'MY_OTHER_KEY'
let url = `http://myotherapi?key=${MY_OTHER_KEY}&q=${query}`
Run Code Online (Sandbox Code Playgroud)

谷歌处理API密钥的最佳做法提示:

不要直接在代码中嵌入API密钥

这让我想到了第一个问题:

1.如何使用变量index.html

在我的index.html文件中,我有两个看起来像这样的标签:

<link rel="manifest" href="%PUBLIC_URL%/manifest.json">
<link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico">
Run Code Online (Sandbox Code Playgroud)

显然,%PUBLIC_URL%是一个变量.如何添加变量%MY_KEY%以避免直接在我的代码中嵌入API密钥?

得到这样的东西:

<script type="text/javascript" src="https://myapi?key=%MY_KEY%">
</script>
Run Code Online (Sandbox Code Playgroud)

与此问题相关,将API密钥存储在常量中是否安全,就像我一样MY_OTHER_KEY

谷歌还说:

不要将API密钥存储在应用程序源代码树中的文件中

这让我想到了第二个问题:

2. API密钥是否仍然在捆绑中?

说我做谷歌和我说的话

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

假设我将密钥存储在外部文件中.我认为,该文件将在某个时刻被读取,并且它的内容要么在包中复制,要么以其他方式引用.最后,密钥是否仍然可以在捆绑中看到,除非可能更难找到?这对此有何帮助?

3.在react应用程序中是否有使用API​​密钥的canonic方法?或者由个人开发人员决定?

自我解释,我正在寻找解决这个问题的反应方式,如果有的话.

谢谢您的帮助!

security frontend api-key reactjs

26
推荐指数
1
解决办法
1万
查看次数

找不到模块:错误:无法解析 node_modules\dotenv\lib' 中的 'fs'

我正在尝试使用带角度的 dotenv,但是当涉及到需要 dotenv 时

 require('dotenv').config()  
 or
 const Dotenv = require('dotenv-webpack');
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

./node_modules/dotenv/lib/main.js 中的错误未找到模块:错误:无法解析 'C:\Users\57322\Favorites\Proyecto\core4edu\node_modules\dotenv\lib' 中的 'fs'

包.json

"dotenv": "^8.2.0",
"dotenv-webpack": "^1.7.0",
Run Code Online (Sandbox Code Playgroud)

angular dotenv

12
推荐指数
4
解决办法
1万
查看次数

React 中的 env-cmd 环境变量

我似乎已经尝试了 env-cmd 命令的各种变体,但无法弄清楚为什么我无法访问变量

我最初遵循本教程 https://www.youtube.com/watch?v=3SH5AQsHypA

但文档已经更改,因此您需要使用命令 -e ,与视频不同,所以我的 package.json 命令读取...

"dev-server": "env-cmd -e dev webpack-dev-server",
Run Code Online (Sandbox Code Playgroud)

任何我的 .env-cmdrc 读取...

{
    "dev" : {
        "BASE_URL" : "development"
    },
    "qa" : {
        "BASE_URL" : "qa"
    },
    "prod" : {
        "BASE_URL" : "prod"
    }
}
Run Code Online (Sandbox Code Playgroud)

但由于某种原因我无法访问 process.env.BASE_URL 。任何帮助是极大的赞赏

javascript environment-variables reactjs

9
推荐指数
3
解决办法
4万
查看次数

Dotenv 与 create-react-app 反应脚本出现问题/错误

我的反应应用程序中不断收到此错误

    Compiled with problems: X

    ERROR in ./ node_modules / dotenv / lib / main.js 1: 11 - 24

    Module not found: Error: Can't resolve 'fs' in 'C: \Users\USER\Desktop\dapps\nefty\node_modules\dotenv\lib'


    ERROR in ./ node_modules / dotenv / lib / main.js 3: 13 - 28

    Module not found: Error: Can't resolve 'path' in 'C: \Users\USER\Desktop\dapps\nefty\node_modules\dotenv\lib'

    BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
    This is no longer the case. Verify if you need this module …
Run Code Online (Sandbox Code Playgroud)

reactjs webpack react-scripts create-react-app dotenv

7
推荐指数
1
解决办法
1万
查看次数