FROM CACHE - jp_header
このコミュニティはピアツーピアサポートに移行しました。Shopify サポートは今後、このコミュニティへのサービスを提供いたしません。これからもぜひ、他のマーチャントやパートナーとつながり、サポートし合い、経験を共有してください。 当社の行動規範に違反する行動や削除を希望するコンテンツがありましたら、引き続きご報告ください

アプリへの遷移動線毎にwindow.location.searchで取得できる値が異なる

アプリへの遷移動線毎にwindow.location.searchで取得できる値が異なる

KyoheiYamaguchi
Shopify Partner
6 1 1

私たちが開発しているアプリでは、アプリにアクセスした際にsigninチェックを行っています。

signinの整合性チェックには、shopify-tokenパッケージの shopifyToken.verifyHmac(query) を使用しています。

 

api/signin

if (!shopifyToken.verifyHmac(request.query)) {
 response.status(400).send('Invalid hmac parameter');
 return;
}


Shopifyストアの左のサイドバーからアプリに遷移した際は、整合性チェックに成功します。

しかし『Shopifyの注文管理画面 > 注文詳細画面 > サブスクリプションのリンクを押下』という動線でアプリに遷移した際は整合性チェックに失敗します。

スクリーンショット 2024-03-18 15.00.35.png

確認したところ、失敗するケースではshopifyToken.verifyHmac() の引数として渡しているqueryが正しくAPIに渡されていませんでした。

signin APIに渡すqueryのパラメータは下記のように取得しています。

// サイドバーからアプリに遷移した場合のクエリパラメーター    : /signin?embedded=1&hmac=xxxx&host=xxxx...
// 注文管理画面からアプリに遷移した場合のクエリパラメーター : /signin
await fetch(`${FIREBASE_FUNCTION_URL}/signin${window.location.search}`)


Shopifyの注文詳細画面からアプリに遷移する際、window.location.searchで正しくクエリパラメーターを取得できないのはShopifyとして正しい挙動なのでしょうか?

もしそれが正しい挙動の場合、注文管理ページからアプリを開く際にsigninAPI側ではどのような整合性チェックを行うのが適切でしょうか?

0件の返信0