繁体   English   中英

如何将查询字符串从 Shopify 传递到嵌入式应用程序?

[英]How to pass query string from Shopify to an embedded app?

我正在构建一个带有 Next.js 的 Shopify 应用程序,我需要获取查询字符串,以便我可以在getServerSideProps中检查商家的身份(请记住,Shopify 应用程序不推荐使用 Shopify)

在访问某些应用程序时,我注意到其中一些应用程序在每个请求中都获取了从 Shopify 传递下来的查询字符串。

此图像显示了它在每个请求上的外观

Shopify 应用程序

此图片显示了我的应用程序的行为方式

在此处输入图像描述

在此图像中,您可以看到,当您使用 hover 路由时,不存在任何查询字符串,这意味着父应用程序以某种方式传递了这些字符串。

在此处输入图像描述

截至目前,我正在使用 Cookie 来传递 shopOrigin,但我觉得如果我能够以某种方式在每个请求中获取查询字符串,我觉得没有必要,而且通过 HMAC,我将能够验证请求是来自 Shopify。

任何来自 Shopify 的应用程序调用在发出请求时都会正确提供商店参数。 在您自己的 App 调用自身时,您也可能会使用商店名称作为查询字符串值。

请注意,您仍然可以使用 cookie 在内部验证您的会话,只是不要像我们过去那样通过 iframe 之外的第三方路由来验证。 Shopify 有大量关于如何正确验证和构建应用程序的文档,请查看。 他们甚至为您提供了一个可用的 Node 应用程序供您使用,因此您可以确保自己做对了。

解决方案非常简单。

Shopify 提供了一个TitleBar AppBridge 组件,您可以使用它来处理应用程序的导航。 它所做的是,在每次路由更改时,它都会重新加载 iframe 并且请求中包含 hmac、商店、代码和时间戳。 它比客户端路由慢一点,但它按预期工作。

为了使用它,你只需要 go 到:合作伙伴的仪表板/你的应用程序/扩展/嵌入式应用程序(点击管理)/导航(点击配置)并添加导航链接,然后你只需要从app-bridge-react导入TitleBar并将其放入index.js

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM