[{"data":1,"prerenderedAt":268},["ShallowReactive",2],{"navigation_docs_zh":3,"-zh-platform-security-and-environments":208,"-zh-platform-security-and-environments-surround":263},[4,22,40,50,64,82,180,194],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":21},"快速开始","i-lucide-rocket","\u002Fzh\u002Fgetting-started","zh\u002F1.getting-started",[10,13,17],{"title":5,"path":11,"stem":12},"\u002Fzh\u002Fgetting-started\u002Fquick-start","zh\u002F1.getting-started\u002F1.quick-start",{"title":14,"path":15,"stem":16},"信任模型","\u002Fzh\u002Fgetting-started\u002Ftrust-model","zh\u002F1.getting-started\u002F2.trust-model",{"title":18,"path":19,"stem":20},"大客户端到端接入指南","\u002Fzh\u002Fgetting-started\u002Fenterprise-integration","zh\u002F1.getting-started\u002F3.enterprise-integration",false,{"title":23,"icon":24,"path":25,"stem":26,"children":27,"page":21},"自研 Storefront","i-lucide-store","\u002Fzh\u002Fstorefront","zh\u002F2.storefront",[28,32,36],{"title":29,"path":30,"stem":31},"第三方 Storefront","\u002Fzh\u002Fstorefront\u002Fthird-party-storefront","zh\u002F2.storefront\u002F1.third-party-storefront",{"title":33,"path":34,"stem":35},"Turnstile 的信任边界","\u002Fzh\u002Fstorefront\u002Fchallenge-and-turnstile","zh\u002F2.storefront\u002F2.challenge-and-turnstile",{"title":37,"path":38,"stem":39},"第三方店铺前端公共 API","\u002Fzh\u002Fstorefront\u002Fpublic-api","zh\u002F2.storefront\u002F3.public-api",{"title":41,"icon":42,"path":43,"stem":44,"children":45,"page":21},"OAuth 与身份","i-lucide-key-round","\u002Fzh\u002Foauth","zh\u002F3.oauth",[46],{"title":47,"path":48,"stem":49},"第三方账号授权安全边界","\u002Fzh\u002Foauth\u002Fauthorization-code-pkce","zh\u002F3.oauth\u002F1.authorization-code-pkce",{"title":51,"icon":52,"path":53,"stem":54,"children":55,"page":21},"开发者平台","i-lucide-blocks","\u002Fzh\u002Fplatform","zh\u002F4.platform",[56,60],{"title":57,"path":58,"stem":59},"应用、版本、安装与 Scope","\u002Fzh\u002Fplatform\u002Fapps-installations-scopes","zh\u002F4.platform\u002F1.apps-installations-scopes",{"title":61,"path":62,"stem":63},"Origin、Redirect、反向代理与环境","\u002Fzh\u002Fplatform\u002Fsecurity-and-environments","zh\u002F4.platform\u002F2.security-and-environments",{"title":65,"icon":66,"path":67,"stem":68,"children":69,"page":21},"运行时扩展","i-lucide-workflow","\u002Fzh\u002Fruntime","zh\u002F5.runtime",[70,74,78],{"title":71,"path":72,"stem":73},"安装级 Webhook","\u002Fzh\u002Fruntime\u002Fwebhooks","zh\u002F5.runtime\u002F1.webhooks",{"title":75,"path":76,"stem":77},"库存同步","\u002Fzh\u002Fruntime\u002Finventory-sync","zh\u002F5.runtime\u002F2.inventory-sync",{"title":79,"path":80,"stem":81},"自动发货 Provider","\u002Fzh\u002Fruntime\u002Fauto-fulfillment","zh\u002F5.runtime\u002F3.auto-fulfillment",{"title":83,"icon":84,"path":85,"stem":86,"children":87,"page":21},"API 参考","i-lucide-braces","\u002Fzh\u002Freference","zh\u002F6.reference",[88,91,95],{"title":83,"path":89,"stem":90},"\u002Fzh\u002Freference\u002Fapi","zh\u002F6.reference\u002F1.api",{"title":92,"path":93,"stem":94},"错误、幂等与限流","\u002Fzh\u002Freference\u002Ferrors-and-limits","zh\u002F6.reference\u002F2.errors-and-limits",{"title":96,"path":97,"stem":98,"children":99,"page":21},"Endpoint 目录","\u002Fzh\u002Freference\u002Foperations","zh\u002F6.reference\u002F3.operations",[100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176],{"title":101,"path":102,"stem":103},"读取公开运行配置","\u002Fzh\u002Freference\u002Foperations\u002Fget-public-runtime-config","zh\u002F6.reference\u002F3.operations\u002F01.get-public-runtime-config",{"title":105,"path":106,"stem":107},"读取公开站点启动配置","\u002Fzh\u002Freference\u002Foperations\u002Fget-public-bootstrap","zh\u002F6.reference\u002F3.operations\u002F02.get-public-bootstrap",{"title":109,"path":110,"stem":111},"读取公开联系渠道","\u002Fzh\u002Freference\u002Foperations\u002Fget-public-contact","zh\u002F6.reference\u002F3.operations\u002F03.get-public-contact",{"title":113,"path":114,"stem":115},"按语言读取当前已发布法律正文","\u002Fzh\u002Freference\u002Foperations\u002Flist-public-legal-documents","zh\u002F6.reference\u002F3.operations\u002F04.list-public-legal-documents",{"title":117,"path":118,"stem":119},"读取店铺已发布装修","\u002Fzh\u002Freference\u002Foperations\u002Fget-public-storefront-decoration","zh\u002F6.reference\u002F3.operations\u002F05.get-public-storefront-decoration",{"title":121,"path":122,"stem":123},"读取店铺公开安全配置","\u002Fzh\u002Freference\u002Foperations\u002Fget-public-store-security-config","zh\u002F6.reference\u002F3.operations\u002F06.get-public-store-security-config",{"title":125,"path":126,"stem":127},"搜索可公开销售商品","\u002Fzh\u002Freference\u002Foperations\u002Fsearch-public-products","zh\u002F6.reference\u002F3.operations\u002F07.search-public-products",{"title":129,"path":130,"stem":131},"读取公开分类","\u002Fzh\u002Freference\u002Foperations\u002Flist-public-categories","zh\u002F6.reference\u002F3.operations\u002F08.list-public-categories",{"title":133,"path":134,"stem":135},"读取安装级凭据绑定身份","\u002Fzh\u002Freference\u002Foperations\u002Fget-installation-credential-identity","zh\u002F6.reference\u002F3.operations\u002F09.get-installation-credential-identity",{"title":137,"path":138,"stem":139},"读取安装级凭据就绪与阻塞事实","\u002Fzh\u002Freference\u002Foperations\u002Fget-installation-credential-readiness","zh\u002F6.reference\u002F3.operations\u002F10.get-installation-credential-readiness",{"title":141,"path":142,"stem":143},"读取公开商品目录","\u002Fzh\u002Freference\u002Foperations\u002Flist-public-products","zh\u002F6.reference\u002F3.operations\u002F11.list-public-products",{"title":145,"path":146,"stem":147},"按 slug 读取公开商品","\u002Fzh\u002Freference\u002Foperations\u002Fget-public-product","zh\u002F6.reference\u002F3.operations\u002F12.get-public-product",{"title":149,"path":150,"stem":151},"读取公开店铺资料","\u002Fzh\u002Freference\u002Foperations\u002Fget-public-merchant","zh\u002F6.reference\u002F3.operations\u002F13.get-public-merchant",{"title":153,"path":154,"stem":155},"读取店铺公开商品","\u002Fzh\u002Freference\u002Foperations\u002Flist-public-merchant-products","zh\u002F6.reference\u002F3.operations\u002F14.list-public-merchant-products",{"title":157,"path":158,"stem":159},"读取店铺公开分类","\u002Fzh\u002Freference\u002Foperations\u002Flist-public-merchant-categories","zh\u002F6.reference\u002F3.operations\u002F15.list-public-merchant-categories",{"title":161,"path":162,"stem":163},"读取店铺公开商品详情","\u002Fzh\u002Freference\u002Foperations\u002Fget-public-merchant-product","zh\u002F6.reference\u002F3.operations\u002F16.get-public-merchant-product",{"title":165,"path":166,"stem":167},"读取当前 API Key 的标识与 scope","\u002Fzh\u002Freference\u002Foperations\u002Fget-api-key-identity","zh\u002F6.reference\u002F3.operations\u002F17.get-api-key-identity",{"title":169,"path":170,"stem":171},"通过 API Key 读取公开分类","\u002Fzh\u002Freference\u002Foperations\u002Flist-api-key-catalog-categories","zh\u002F6.reference\u002F3.operations\u002F18.list-api-key-catalog-categories",{"title":173,"path":174,"stem":175},"通过 API Key 读取公开商品目录","\u002Fzh\u002Freference\u002Foperations\u002Flist-api-key-catalog-products","zh\u002F6.reference\u002F3.operations\u002F19.list-api-key-catalog-products",{"title":177,"path":178,"stem":179},"通过 API Key 读取公开商品","\u002Fzh\u002Freference\u002Foperations\u002Fget-api-key-catalog-product","zh\u002F6.reference\u002F3.operations\u002F20.get-api-key-catalog-product",{"title":181,"icon":182,"path":183,"stem":184,"children":185,"page":21},"示例","i-lucide-code-xml","\u002Fzh\u002Fexamples","zh\u002F7.examples",[186,190],{"title":187,"path":188,"stem":189},"最小 Nuxt Storefront","\u002Fzh\u002Fexamples\u002Fnuxt-storefront","zh\u002F7.examples\u002F1.nuxt-storefront",{"title":191,"path":192,"stem":193},"Webhook 验签","\u002Fzh\u002Fexamples\u002Fwebhook-verification","zh\u002F7.examples\u002F2.webhook-verification",{"title":195,"icon":196,"path":197,"stem":198,"children":199,"page":21},"版本与支持","i-lucide-life-buoy","\u002Fzh\u002Foperations","zh\u002F8.operations",[200,204],{"title":201,"path":202,"stem":203},"版本、迁移与变更记录","\u002Fzh\u002Foperations\u002Fversions-and-migrations","zh\u002F8.operations\u002F1.versions-and-migrations",{"title":205,"path":206,"stem":207},"支持与安全披露","\u002Fzh\u002Foperations\u002Fsupport-and-security","zh\u002F8.operations\u002F2.support-and-security",{"id":209,"title":61,"body":210,"description":256,"extension":257,"links":258,"meta":259,"navigation":260,"path":62,"seo":261,"stem":63,"__hash__":262},"docs_zh\u002Fzh\u002F4.platform\u002F2.security-and-environments.md",{"type":211,"value":212,"toc":252},"minimark",[213,217,221,224,240,243,246,249],[214,215,61],"h1",{"id":216},"originredirect反向代理与环境",[218,219,220],"p",{},"生产 redirect URI 与浏览器 Origin 必须是无凭据、无片段的精确 HTTPS 值。redirect URI 匹配包含路径和已登记 query 语义。Origin allowlist 只允许浏览器读取响应，不授予 OAuth scope 或资源归属。",[218,222,223],{},"第三方反向代理不得展示、嵌入或仿冒 Ayalink 登录页，不得收集邮箱、密码或 MFA，也不得转发全局 session Cookie、authorization code 或 token。用户只在官方 Ayalink authorization domain 完成登录；第三方只接收自己 app 的最小、短期、可撤销 grant。Origin、CORS、Host header、tenantId、slug 和代理所在网络均不构成授权。",[218,225,226,227,231,232,235,236,239],{},"BFF 必须与第三方应用同源，只保存该应用自己的 OAuth grant，并使用 ",[228,229,230],"code",{},"HttpOnly","、",[228,233,234],{},"Secure","、适当 ",[228,237,238],{},"SameSite"," 的应用会话 Cookie。它不能替代 Ayalink 授权服务器、要求用户输入 Ayalink 密码\u002FMFA、把 Ayalink Cookie 转发给商家域，或根据 Host header 推断 tenant 归属。服务端 grant 不得进入浏览器 bundle、URL、日志或分析系统。",[218,241,242],{},"恶意反代可能使用同形域名、TLS 终止和注入脚本记录全部登录因素。用户应核对官方 authorization domain；怀疑受骗时从官方入口撤销 app\u002Finstallation grant、退出会话、更新密码并重新配置 MFA，再通过官方安全渠道报告。",[218,244,245],{},"Sandbox 与 Production 使用不同 client、installation、secret、配额、Webhook endpoint、mapping、intent 和数据域。即使 app\u002Fstore 标识看起来相似，sandbox token 也会被 production 拒绝。",[218,247,248],{},"环境变量接管的设置在 Merchant\u002FAdmin 中只读并标注来源。Secret 只在创建\u002F轮换时显示一次，随后只能看到遮罩摘要。缺少加密主密钥或 Provider 凭据时失败关闭，UI 不得宣称能力已启用。",[218,250,251],{},"DPoP、refresh-token rotation、token-family replay detection 和用户 grant 管理入口尚未开放或仍待安全审计；本文不把它们描述为已支持。API Reference 在审计完成前不发布 OAuth endpoint 或请求\u002F响应示例。",{"title":253,"searchDepth":254,"depth":254,"links":255},"",2,[],"隔离 Sandbox\u002FProduction，并防止 Origin、redirect 与反向代理混淆。","md",null,{},true,{"title":61,"description":256},"cW3CXN4bzorFzS-s47Vfw46GzHIcXjzPKksrSWehGJE",[264,266],{"title":57,"path":58,"stem":59,"description":265,"children":-1},"使用不可变应用版本和店铺绑定安装实现最小权限授权。",{"title":71,"path":72,"stem":73,"description":267,"children":-1},"验证安装级 Webhook、轮换 secret、防重放并处理重试与死信恢复。",1785955331410]