0

我在使用 Shopify 的 Multipass API 从外部来源对我们 Shopify+ 店面的用户进行身份验证时遇到了一些重大问题。我使用一个简单的 Next.js API 函数作为我的端点,以使用 Shopify 建议的 Node.js 包调用 Multipass multipassify,. 我还尝试使用一个更新的 NPM 包,multipass-js但也没有运气。

基本上,无论我如何构建我的加密/编码令牌 URL,我都会从 Multipass 端点收到 422 错误,而几乎没有关于问题细节的上下文。它只是说“无效的多通道请求”,我可以告诉服务器的错误是 422。

export default function handler(req, res) {

  const multipass = new multipassify(process.env.MULTIPASS_SECRET);

  // Creating my customer data hash

  const customerData = {
      "email": `${req.query.email ? req.query.email : ""}`,
      "remote_ip": "192.168.0.1"
  };

  // constructing my URL

  const url = multipass.generateUrl(customerData, process.env.WEBSITE_URL);

  // function returns the final URL the client should forward to

  res.status(200).json({ url });
}

我已经确认我的MULTIPASS_SECRETWEBSITE_URL都是匹配的正确值,并且从 API 传回的多通道 URL 似乎也构造正确。这是一个示例 URL 供参考:https://staging.hineighbor.com/account/login/multipass/9RPOxw8VSlojhoeUh3gW7DbPEBYq85AVWA0OJs0cQcxOqv8KlXKNpKXqIXActZIstI4Vcdh5Cn8T4RxWlOiLm5msdaJVclMsdw2-EDl5eeQgIX0KlbylnVrO_rxOQ3lq3iyMO7cT5F24gfO_jF3xTQol9yRqr71v7QerTIVAr6GU2Sa4CAHByNi8Zvh4Jalx6B42ReuePwMd-eATurELZg==我什至尝试将基本 URL 设置为我们的主要 TLD 而不是 .myshopify.com URL,以查看是否有任何效果。没运气。

此外,我尝试使用简单的window.location.href重定向到新的标记化登录 URL 以及使用 fetch api 的 GET 调用,但似乎都没有对 Shopify 返回的 422 错误产生任何影响。同样,我认为我的问题可能与 CORS 相关,因为我正在localhost为我的初始测试工作,但在部署到我们主站点的子域后,问题仍然存在。

对于额外的上下文,您可以查看我的哑客户端应用程序来帮助测试。用于colin.darland@gmail.com确定您使用活动用户帐户发布电子邮件:https ://staging-api.hineighbor.com/

任何反馈或建议都会非常棒。我被这个难住了。

4

0 回答 0