Приложение Python Shopify не загружается в Safari iframe - PullRequest
0 голосов
/ 05 ноября 2018

В настоящее время я работаю над встроенным приложением shopify, которое использует python flask и библиотеку shopifyapi в бэкэнде. Приложение работает нормально и отображается в любом браузере, кроме (macos и ios) safari.

Я получаю ошибку при использовании safari:

Blocked mixed content http://app-domain.com/shopify?hmac=xxx..&protocol=https://&shop=shopify-store-name because 'block-all-mixed-content' appears in the Content Security Policy

Каким-то образом Safari пытается загрузить что-то через http при посещении приложения в shopify admin, однако при использовании Google Chrome, Firefox и т. Д. Это не так, и все работает нормально. Встроенные приложения Shopify загружают содержимое приложения в iframe, где оно отображается встроенным на странице администрирования Shopify.

Когда я смотрю на значение iframe src в отладчике chrome / firefox, я вижу, что оно правильно указывает на:

https://app-domain.com/shopify?hmac=xxx..&protocol=https://&shop=hopify-store-name

Приложение перенаправляет и адреса, установленные в настройках партнера shopify, также все используют https.

То, что я уже пытался безуспешно, это:

  • Использование SSLify в бэкэнде для перенаправления любых запросов на https
  • Включение CORS

Я использую:

  • Python 3.6.6
  • Колба 1.0.2
  • ShopifyAPI 3.1.0
  • Werkzeug 0.14.1

Поскольку я получаю сообщение об ошибке только при использовании сафари, я понятия не имею, в чем может быть проблема, и надеюсь, что кто-то может помочь мне с этим.

С наилучшими пожеланиями Dominik

1 Ответ

0 голосов
/ 05 ноября 2018

Кажется, довольно просто ... проверить это ...

https://ecommerce.shopify.com/c/api-announcements/t/breaking-change-to-safari-itp-2-0-540147

Safari, а вскоре и FF, возненавидели ненависть к печально известной дыре в конфиденциальности ... так что вы видите, как это влияет на шаблон Shopify для встроенных приложений.

Это настоящий хак в некотором роде, и вы знаете, это будет только ухудшаться:)

...