Я создаю приложение Shopify с помощью Next.js, и мне нужно получить строку запроса, чтобы я мог проверить getServerSideProps личность продавца (имейте в виду, что файлы cookie не рекомендуются для приложений Shopify)
При посещении некоторых приложений я заметил, что некоторые из них получают строку запроса, передаваемую из Shopify в каждом запросе.
На данный момент я использую Cookie для передачи shopOrigin, но я чувствую, что в этом нет необходимости, если каким-то образом я смогу получить строку запроса в каждом запросе, а также с помощью HMAC я смогу проверить, что запросы из Shopify.





Любые вызовы вашего приложения, исходящие из Shopify, должным образом предоставляют параметр магазина при выполнении запросов. В вызовах вашего собственного приложения вы также, вероятно, будете использовать название магазина в качестве значения строки запроса.
Обратите внимание, что вы по-прежнему можете проверять свои сеансы внутри с помощью файла cookie, вы просто не делаете это через сторонний маршрут, за пределами iframe, как мы привыкли. Shopify имеет множество документации о том, как правильно аутентифицировать и создавать приложения, ознакомьтесь с ними. Они даже дают вам работающее приложение Node, чтобы вы могли убедиться, что делаете все правильно.
Вы поймете это. Это не так сложно. Вы делаете из мухи слона! Узор довольно простой. У вас есть маршрут в ваше приложение, которое не аутентифицировано, где вы оцениваете входящие параметры. Если запрос не зарегистрирован, войдите в него. Как только зарегистрированный запрос попадет в ваше приложение, убедитесь, что вы добавили токен JWT, если хотите пройти этот маршрут ко всем исходящим запросам, чтобы все входящие использовали его. Или просто используйте куки в стиле старой школы В ВАШЕМ ПРИЛОЖЕНИИ, и вы в деле. Ничего нового или ужасного для вас.
К сожалению, Shopify не любит файлы cookie во встроенных приложениях. Ссылка: twitter.com/ShopifyDevs/status/1342130667694546944 Спасибо за ваше предложение. Я буду искать.
Только файлы cookie передавались из-за пределов iframe. Ваши собственные внутренние файлы cookie приложения в порядке.
«Не использовать их во встроенных приложениях» не похоже на то, что мы можем оставить их в нашем внутреннем приложении. Мое приложение встроено. :)
Ваше приложение — это ваш бизнес. Вы хотите установить файл cookie в своем приложении для целей вашего приложения, никто не скажет «бу». Проблемой являются только сторонние файлы cookie. Что угодно.. разберешься.
Решение было довольно простым.
Shopify предоставляет компонент TitleBar AppBridge, который вы можете использовать для управления навигацией в приложении. Что он делает, так это то, что при каждом изменении маршрута он перезагружает iframe, а в запросе поступают hmac, магазин, код и временная метка. Это немного медленнее, чем маршрутизация на стороне клиента, но работает так, как ожидалось.
Для того, чтобы использовать его, вам просто нужно перейти на:
Панель инструментов партнера / Ваше приложение / Расширения / Встроенное приложение (нажмите «Управление») / Навигация (нажмите «Настроить») и добавьте навигационные ссылки, затем вам просто нужно импортировать TitleBar из app-bridge-react и поместить его в index.js
Спасибо. К сожалению, их учебные пособия устарели, а пример приложения Node.js использует koa-shopify-auth, который использует файлы cookie, Shopify движется к аутентификации без файлов cookie. Кроме того, Shopify передает параметр магазина по первоначальному запросу, но я использую SPA, а точнее Next.js, и мое приложение требует, чтобы параметр магазина сохранялся при изменении маршрута.