Shopify独立应用审核需无重定向立即授权 动态URL配置问题咨询
解决方案
核心问题出在你当前的安装流程多了前端中转的步骤,从Shopify应用商店点击安装的请求会先加载你的React前端页面,等页面加载、接口请求完成后才跳转授权页,中间的落地页展示过程被审核团队识别为不符合规范。按以下步骤调整即可:
1. 调整应用入口路由配置
不要把Shopify后台配置的「App URL」指向你的React前端地址,改为指向Express后端的专属安装处理路由,所有安装请求直接交给后端处理,不经过前端加载流程。
2. 改写后端安装处理逻辑
直接在后端路由中获取Shopify安装请求自带的shop参数,生成授权链接后直接做302重定向,无需返回给前端处理:
// Shopify后台配置的App URL填写该路由地址,比如 https://你的域名/api/shopify/install app.get('/api/shopify/install', async (req, res) => { const shopName = req.query.shop; // 合法shop参数格式校验,符合Shopify安全要求 const shopReg = /^[a-zA-Z0-9][a-zA-Z0-9\-]*\.myshopify\.com$/; if (!shopName || !shopReg.test(shopName)) { // 无合法shop参数的访问(比如用户直接输入应用域名),跳转到你的前端落地页/首页 return res.redirect('你的前端首页地址'); } try { const authRoute = await Shopify.default.Auth.beginAuth( req, res, shopName, '/auth/callback', true, ); // 服务端直接重定向到授权页,无任何中间页展示 return res.redirect(authRoute); } catch (err) { console.error('授权初始化失败:', err); return res.redirect('你的前端错误页/首页地址'); } });
3. 清理冗余的前端逻辑
原来前端写的checkShopParam相关的安装跳转逻辑可以直接删除,仅保留非安装场景下的业务逻辑即可。
补充说明
- 从Shopify应用商店发起的安装请求,默认一定会在URL的query参数中携带合法的
shop字段,不需要担心后端拿不到商店名称的问题 - 原有
/auth/callback的回调逻辑不需要修改,授权完成后你可以在回调中判断用户是新安装还是已安装,跳转对应的业务页面即可 - 该逻辑同时兼容独立应用和嵌入应用两种场景,不会影响你应用默认的嵌入行为
内容的提问来源于stack exchange,提问作者Pear
相关产品推荐
相关产品推荐

