我有一个组织的 Github 页面,想要从第三方 API 调用数据,但需要授权令牌。我能否在不显示授权令牌的情况下发布此 Github 页面到公共代码库?
我有一个组织的 Github 页面,想要从第三方 API 调用数据,但需要授权令牌。我能否在不显示授权令牌的情况下发布此 Github 页面到公共代码库?
username.github.io
的约定进行命名或者有一个gh-pages
分支,它仍将发布在GitHub Pages上。虽然这是一种选择,但不一定是正确的选择。npm install dotenv
2. 将以下代码添加到index.js文件中的导入语句中。
require('dotenv').config();
3. 在应用的根目录下创建 .env 文件,并将认证令牌作为变量添加进去。请注意,当使用 React 时,您必须在变量名前加上 REACT_APP_
。
AUTH_TOKEN=987asc8iks0lenv7
4. 使用 console.log() 语句打印出 process.env 变量,以检查变量是否被正确存储。
console.log(process.env.AUTH_TOKEN);
5. 更新应用程序代码中所有对认证令牌的引用。
旧变量:const auth_token = '987asc8iks0lenv7';
新变量:const auth_token = process.env.AUTH_TOKEN;
6. 在应用程序的根目录中创建并添加.gitignore文件,并添加以下代码以使git忽略存储认证令牌的.env文件。
.env
7. 将更新添加、提交并推送到GitHub上的应用程序master分支。
8. 要部署或重新部署更新到gh-pages分支,请使用以下命令。
npm run deploy
AUTH_TOKEN
不还是会作为请求的一部分暴露出来吗?这可以从浏览器开发工具中的网络选项卡中查看。这似乎并没有解决直接从客户端代码调用的根本问题。 - A NAUTH_TOKEN
不会暴露出来因为它会被存储在环境变量中。同时,你也将 .env 文件加入到了 .gitignore 文件中,这样就可以隐藏它,不会出现在提交历史记录中。 - WebalationAshen的答案对于这种用例不起作用。通过Github配置的机密仅适用于Github Actions(请参阅文档),因此在实践中主要针对CI / CD等应用程序,而不是客户端API调用等其他用例。
GitHub Actions应该能够满足您的需求。
您可以使用可视化工作流程编辑器或存储库设置来添加密钥。创建密钥后,GitHub会立即加密该值,您将无法再查看或编辑该值。任何具有对存储库的写访问权限的人都可以在该存储库中创建和使用密钥。
然而,GitHub Actions目前处于公共测试版阶段,因此在此测试期间应避免使用它来处理高价值的工作流程和内容。