GOOGLE ADS

samedi 23 avril 2022

Les URL d'administration Shopify-App peuvent-elles être utilisées comme points de terminaison pour les requêtes Ajax ?

Je développe une application pour shopify. L'application fournira des pages et des fonctionnalités pour la zone d'administration de Shopify, en particulier à l'aide d'App Bridge.

Les URL du pont d'application ressemblent à ceci :

https://[shop].myshopify.com/admin/apps/[my-app]/[my-path]

Lorsque vous visitez cette page, elle charge l'en-tête/le pied de page/le menu de Shopify, ainsi qu'un IFrame pointant vers [my-path]mon site, par exemple :

https://example.com/[my-path]

Je voudrais configurer les requêtes Ajax en utilisant le même système d'URL. par exemple, j'utiliserais le point de terminaison comme suit (je sais que celui-ci n'existe pas, juste un exemple):

https://[shop].myshopify.com/admin/apps/proxy/[my-app]/[my-path]

Ensuite, au lieu de restituer l'IFrame avec mon URL, l'administrateur Shopify transmettrait la demande par procuration, en la transmettant à :

https://example.com/[my-path]

Est-ce possible ou dois-je envoyer la requête Ajax directement à mon propre serveur ? Si plus tard, comment est-il recommandé que je fasse l'autorisation ? Le HMAC fourni dans la demande d'origine peut-il être transmis à la demande AJAX (il semble que ce serait mauvais, mais je ne sais pas exactement pourquoi), ou utiliser une session que j'établis sur la demande d'origine ?


Solution du problème

Vous configurez un proxy d'application dans votre application. Vous fournissez un point de terminaison dans votre application pour le proxy. Une fois cette application installée dans un magasin, vous pouvez désormais appeler votre application depuis le magasin lui-même vers le proxy. En toute sécurité. C'est tout l'intérêt de l'App Proxy.

Aucun commentaire:

Enregistrer un commentaire

Comment utiliseriez-vous .reduce() sur des arguments au lieu d'un tableau ou d'un objet spécifique ?

Je veux définir une fonction.flatten qui aplatit plusieurs éléments en un seul tableau. Je sais que ce qui suit n'est pas possible, mais...