如何在 Javascript 上隐藏 API 密钥?

问题描述

我正在尝试使用 vanilla javascript 隐藏项目的 API 密钥。有什么关于如何做到这一点的帮助吗?

这是我的 javascript script.js

const API_KEY1 = 'abcdKey123'

async function getAllPosts() {
  // fetch the data from the api and put inside a promise
  const fetchAPI = await fetch(`https://gnews.io/api/v4/top-headlines?token=${API_KEY1}&lang=en`)

  // transform the data in json
  const apiJson = fetchAPI.json()
  // return the data
  return apiJson
}

如何隐藏关键信息并继续使用它? 能不能一步一步告诉我?我看过一些 youtube 视频,但没有一个真正给出直接的答案。

谢谢。

解决方法

如果是 nodeJS,您可以创建一个 DOT_ENV 文件并将其放入 gitignore 文件中,我假设您使用 github 或 gitlab 进行版本控制。

据我所知,对于前端来说,隐藏它们是不可能的。您可以混淆它们,但永远不要隐藏在前端代码中。

只需在后端使用一点 PHP 或在后端运行 NodeJS 服务器即可。

真的,继续学习一些 PHP 和 NodeJS,如果可以的话,我会在 Node + Express 中做所有 JS 的事情。如今,即使是前端开发人员也需要了解数据库和后端。一般来说,PHP 更容易学习(即使你知道 JS)并且更稳定。但是一旦你掌握了 NodeJS 的窍门,如果项目的目的是兼容的,那就很有趣了。

但是,您不想向用户公开的任何内容都必须保存在您的服务器上。