隐藏内容丰富的空间 ID 和访问令牌,客户端 javascript 文件

R. *_*ani 5 javascript contentful

我是内容丰富的新手,我正在尝试将内容从内容显示到网页。我正在使用 contentful.js 显示内容,我想知道当我在 js 文件中使用它以在网页中显示内容时如何向公共用户隐藏这些信息(空间 ID 和访问令牌值)。下面是我在主 Js 文件中使用的 Javascript 代码来显示 html 文件中的内容。

var client = contentful.createClient({
  accessToken: 'b4c0n73n7fu1',
  space: 'cfexampleapi'
});

client.entries()
.then(function (entries) {
  // log the file url of any linked assets on image field name
  entries.forEach(function (entry) {
    if(entry.fields.SampleContent) {
      document.getElementById('sample_content_block').innerHTML = entry.fields.SampleContent;
    }
  })
})
Run Code Online (Sandbox Code Playgroud)

提前致谢!

小智 5

有几种不同的方法可以做到这一点。最简单的方法是将您的空间 ID 和 accessToken 移至环境变量中。看看这篇关于如何使用 Javascript 执行此操作的 Medium 文章:https://medium.com/ibm-watson-data-lab/environment-variables-or-keeping-your-secrets-secret-in-a-node -js-app-99019dfff716

然后,在您的托管提供商上,您可以将环境变量设置为这些变量,并且您的代码将能够使用它们。

值得注意的是,您放在 Contentful 上的所有内容都被假定为只读。公开您的 Content Delivery API 密钥(示例中的访问密钥)和您的空间 ID 并不像共享替代服务的 API 密钥那样造成世界末日。使用您发布的 CDA 密钥不会让其他人编辑您存储在 Contentful 上的任何数据,而只能读取这些数据。

但是,您需要确保不公开您的 CMA 密钥(内容管理 API 密钥),因为这将允许人们在 Contentful 中编辑和更改您的内容。


Iva*_*van 0

您可以使用自己的服务器(或 lambda 函数)来代理请求,然后将令牌保留在服务器端,而不是暴露在网络上。