From 11dccc95bb1d23d2d24d767551b30c15eedc6efb Mon Sep 17 00:00:00 2001 From: Keyfer Mathewson Date: Wed, 26 Aug 2020 12:56:23 -0400 Subject: [PATCH] EncodeURI origin app-bridge --- packages/koa-shopify-auth/CHANGELOG.md | 4 +++- .../koa-shopify-auth/src/auth/redirection-page.ts | 2 +- .../src/auth/test/redirection-page.test.ts | 15 +++++++++++++++ 3 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 packages/koa-shopify-auth/src/auth/test/redirection-page.test.ts diff --git a/packages/koa-shopify-auth/CHANGELOG.md b/packages/koa-shopify-auth/CHANGELOG.md index 2a16d50ca2..4b0892ee9a 100644 --- a/packages/koa-shopify-auth/CHANGELOG.md +++ b/packages/koa-shopify-auth/CHANGELOG.md @@ -5,7 +5,9 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). - +## [Unreleased] + +- URI encode `config` on redirection page [1612](https://github.com/Shopify/quilt/pull/1612) ## [3.1.65] - 2020-07-06 diff --git a/packages/koa-shopify-auth/src/auth/redirection-page.ts b/packages/koa-shopify-auth/src/auth/redirection-page.ts index 70908b89b5..56f20cd7e9 100644 --- a/packages/koa-shopify-auth/src/auth/redirection-page.ts +++ b/packages/koa-shopify-auth/src/auth/redirection-page.ts @@ -12,7 +12,7 @@ export default function redirectionScript({origin, redirectTo, apiKey}) { var Redirect = AppBridge.actions.Redirect; var app = createApp({ apiKey: '${apiKey}', - shopOrigin: '${origin}', + shopOrigin: "${encodeURI(origin)}", }); var redirect = Redirect.create(app); redirect.dispatch(Redirect.Action.REMOTE, '${redirectTo}'); diff --git a/packages/koa-shopify-auth/src/auth/test/redirection-page.test.ts b/packages/koa-shopify-auth/src/auth/test/redirection-page.test.ts new file mode 100644 index 0000000000..b0f93e02df --- /dev/null +++ b/packages/koa-shopify-auth/src/auth/test/redirection-page.test.ts @@ -0,0 +1,15 @@ +import redirectionScript from '../redirection-page'; + +const origin = 'https://shopify.com/?x=шеллы'; +const redirectTo = 'shop1.myshopify.io'; +const apiKey = 'fakekey'; + +describe('redirectionScript', () => { + it('returns a script tag with formatted data', () => { + const script = redirectionScript({origin, redirectTo, apiKey}); + + expect(script).toContain( + 'shopOrigin: "https://shopify.com/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B"', + ); + }); +});