【问题标题】:Hiding contentful Space id and access token, client side javascript file隐藏内容空间 id 和访问令牌,客户端 javascript 文件
【发布时间】:2016-07-08 04:07:02
【问题描述】:

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

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;
    }
  })
})

提前致谢!

【问题讨论】:

  • 无法在客户端 javascript 中隐藏任何内容。如果这是一个问题,您需要在服务器(即节点 sdk)上包装这些调用

标签: javascript contentful


【解决方案1】:

您可以使用自己的服务器来代理请求,或者类似 Aerobatic 的快速请求代理功能:https://www.aerobatic.com/docs/http-proxy

【讨论】:

    【解决方案2】:

    有几种不同的方法可以做到这一点。最简单的方法是将您的空间 ID 和 accessToken 移动到环境变量中。看看这篇关于如何使用 Javascript 做到这一点的中等帖子: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 中编辑和更改您的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-26
      • 1970-01-01
      • 1970-01-01
      • 2017-05-08
      • 1970-01-01
      • 1970-01-01
      • 2021-01-24
      • 1970-01-01
      相关资源
      最近更新 更多