将 Netlify 的托管身份服务与自托管 Netlify CMS 结合使用

tec*_*him 4 netlify netlify-cms

我在自己的服务器上托管我的网站,并使用 Netlify CMS。但是,我仍然希望使用 Netlify 的托管 Identity 和 Git 网关服务,而不是运行我自己的服务。

tec*_*him 6

是的,这是可能的。首先,您需要在 Netlify 中设置您的站点,并确保您打开并配置了 Identity 和 Git 网关服务。遵循 Netlify CMS 的常规“添加到您的站点”设置,但进行以下更改:

内容管理系统config.yml更改

backend你的配置的部分应包含以下三个键。替换my-site.netlify.com为您的 Netlify 站点 URL。

backend:
  name: git-gateway
  identity_url: "https://my-site.netlify.com/.netlify/identity"
  gateway_url: "https://my-site.netlify.com/.netlify/git"
Run Code Online (Sandbox Code Playgroud)

内容管理系统index.html更改

假设您已经添加了 Netlify Identity 脚本 ( netlify-identity-widget.js),请将其删除并改用netlify-identity.js同一个包中的脚本。此脚本不会自动初始化,这允许我们设置自己的参数。在您的管理页面和网站主页上执行此操作。

<script src="https://identity.netlify.com/v1/netlify-identity.js"></script>
Run Code Online (Sandbox Code Playgroud)

接下来,在管理页面和主页的正下方添加此脚本。同样,替换my-netlify-site.com为您的 Netlify 站点 URL。

<script>
  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", function () {
      netlifyIdentity.init({
        APIUrl: "https://my-site.netlify.com/.netlify/identity"
      });
    });
  } else {
    netlifyIdentity.init({
      APIUrl: "https://my-site.netlify.com/.netlify/identity"
    });
  }
</script>
Run Code Online (Sandbox Code Playgroud)