Summary
When using an external OIDC identity provider with New Customer Accounts,
Shopify does not pass the ui_locales parameter in the /authorize request.
This makes it impossible for the identity provider to display the login screen
in the correct language based on the store’s current locale.
Current Behavior
- Store URL includes locale info:
https://shopify.com/{shop_id}/account?locale=en®ion_country=US - Shopify redirects to the external IdP’s
/authorizeendpoint - The
ui_localesparameter is not included in the authorize request - The IdP has no way to know which language the store is currently displaying
Expected Behavior
Shopify should forward the store’s current locale as the ui_locales parameter
in the OIDC /authorize request, as defined in
OpenID Connect Core Section 3.1.2.1:
ui_locales - OPTIONAL. End-User’s preferred languages for the User Interface.
For example:
/authorize?client_id=xxx&...&ui_locales=en
Use Case
We operate a multi-language Shopify store (Japanese + English) with a custom
OIDC identity provider for LINE Login. When a customer visits the English version
of the store and clicks “Login”, the login screen should appear in English.
Currently, the IdP can only fall back to the browser’s Accept-Language header,
which may not match the store language the customer was browsing.
Context
- Shopify already supports
localeandregion_countryparameters for
market-aware auth URLs in headless storefronts - The same capability should be extended to external OIDC identity providers
for non-headless stores ui_localesis a standard OIDC parameter, so this would be spec-compliant
Environment
- Shopify Plus
- New Customer Accounts with external OIDC identity provider
- Multi-market store (Japanese + English)