Gatsby-source-shopify 身份验证问题

Gatsby-source-shopify authentication issue

我正在尝试创建一个使用 shopify 的 gatsby 网站。

按照 gatsby 文档 here 我注意到没有“私有”应用程序。

根据 shopify 文档 here 私人应用已被弃用,现在它们被称为自定义应用。

这是我有点困惑的部分。随之而来的是 auth 的变化。之前,使用 gatsby-source-shopify 插件,我能够将商店 url 和私人应用程序密码添加到 gatsby-config 中,然后我可以使用 shopify 店面 API。但是,现在自定义应用程序没有单一密码。

因为这个弃用(来自 shopify)发生在 2 个月前,所以 Gatsby 文档和 gatsby-source-shopify 插件似乎需要更新。

一些关于如何让 gatsby 网站通过 shopify 店面进行身份验证(现在使用 OAuth)的一般指导和帮助 API 会很棒。

我知道这是比较新的。

为了帮助指导他人,以下是我的发现。

似乎 Shopify 正在从店面结账 API 转移到店面购物车 API。这些步骤之一是在 shopify 后台从私有应用程序转移到自定义应用程序。我的理解是,这是向未经身份验证的访问迈出的一步,以简化流程。

并且 gatsby-source-shopify 插件尚未更新以反映这一举措。

我认为如果需要,您可以构建自己的 shopify 服务 类 和 gatsby 中的连接。但是,我会推荐 NextJS 这样做。

除了this one,我还没有找到入门模板。我对这个启动器唯一的犹豫是它使用了 Astro。我对它不是很熟悉,我希望能够从头开始做更多的事情。 (我认为一个好的开始,如果有人找到的话,应该是只包含基本的 Gatsby 或 NextJS 或任何框架,然后是允许您与 shopify 管理员交互的基本查询和服务。获取产品。结账等。 ..)

使用 gatsby-source-shopify 仍然可以使用私有应用程序,尽管到目前为止文档尚未相应更新。简而言之,您必须配置管理员访问权限,然后使用管理员 API 访问令牌而不是您的密码。 This discussion on the Gatsby GitHub 更详细地解释了必要的更改。您的配置应与此类似:

{
      resolve: `gatsby-source-shopify`,
      options: {
        storeUrl: process.env.SHOPIFY_STORE_NAME,
        password: process.env.SHOPIFY_ADMIN_ACCESS_TOKEN,
      },
    },

正如您所提到的,可以通过 gatsby-source-graphql or by building your own Gatsby source plugin.

建立自己的连接。