Hi Shopify team,
we operate an established public accounting connector listed in the Shopify App Store. A recent app quality check flagged our account connection flow because the third-party OAuth authorization opens in an auto-closing popup.
The reviewer stated:
“The app cannot have a UI that takes you off the admin via 1 click or ask to log-in.”
This is not an additional login for our Shopify app, nor does it open a standalone version of our application. The separate window contains only the accounting provider’s login and OAuth consent pages. After authorization, it closes automatically and the merchant continues inside the embedded Shopify app.
We understand Shopify’s guidance against popups for essential functionality and are prepared to replace the popup:
However, the provider currently prevents its authentication pages from being embedded:
X-Frame-Options: SAMEORIGIN
Content-Security-Policy: frame-ancestors 'self'
An App Bridge modal therefore cannot display this flow. Shopify’s Navigation API documents top-level navigation to an external URL:
open(authorizationUrl, '_top')
Shopify staff have also confirmed that valid test credentials must be provided when an app integrates with a third-party platform. External provider authentication therefore appears to be an expected review scenario:
Can Shopify confirm whether a same-tab top-level redirect to the provider, followed by a return to the embedded app after authorization, complies with requirement 2.2.2?
If so, does the instruction that an app must not “ask to log in” refer only to an additional login for the app itself, rather than the required authentication of a third-party service being connected?
If a top-level redirect is also considered non-compliant, which supported implementation should connector apps use when the OAuth provider prohibits iframe embedding?
We are ready to change the implementation, but need to avoid replacing one rejected flow with another. Our enforcement timeline begins on September 2, so clarification from Shopify staff would be greatly appreciated.
Thank you!