[{"data":1,"prerenderedAt":288},["ShallowReactive",2],{"navigation_docs_zh":3,"-zh-platform-security-and-environments":228,"-zh-platform-security-and-environments-surround":283},[4,22,40,50,64,82,200,214],{"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,180,184,188,192,196],{"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\u002Finitiate-hosted-login","zh\u002F6.reference\u002F3.operations\u002F11.initiate-hosted-login",{"title":145,"path":146,"stem":147},"以 PKCE 单次消费托管登录返回码","\u002Fzh\u002Freference\u002Foperations\u002Fconsume-hosted-login-return","zh\u002F6.reference\u002F3.operations\u002F12.consume-hosted-login-return",{"title":149,"path":150,"stem":151},"创建服务端重算的托管结账会话","\u002Fzh\u002Freference\u002Foperations\u002Fcreate-hosted-checkout-session","zh\u002F6.reference\u002F3.operations\u002F13.create-hosted-checkout-session",{"title":153,"path":154,"stem":155},"读取绑定安装的托管结账状态","\u002Fzh\u002Freference\u002Foperations\u002Fget-hosted-checkout-session","zh\u002F6.reference\u002F3.operations\u002F14.get-hosted-checkout-session",{"title":157,"path":158,"stem":159},"取消尚未进入不可逆支付阶段的托管结账","\u002Fzh\u002Freference\u002Foperations\u002Fcancel-hosted-checkout-session","zh\u002F6.reference\u002F3.operations\u002F15.cancel-hosted-checkout-session",{"title":161,"path":162,"stem":163},"读取公开商品目录","\u002Fzh\u002Freference\u002Foperations\u002Flist-public-products","zh\u002F6.reference\u002F3.operations\u002F16.list-public-products",{"title":165,"path":166,"stem":167},"按 slug 读取公开商品","\u002Fzh\u002Freference\u002Foperations\u002Fget-public-product","zh\u002F6.reference\u002F3.operations\u002F17.get-public-product",{"title":169,"path":170,"stem":171},"读取公开店铺资料","\u002Fzh\u002Freference\u002Foperations\u002Fget-public-merchant","zh\u002F6.reference\u002F3.operations\u002F18.get-public-merchant",{"title":173,"path":174,"stem":175},"读取店铺公开商品","\u002Fzh\u002Freference\u002Foperations\u002Flist-public-merchant-products","zh\u002F6.reference\u002F3.operations\u002F19.list-public-merchant-products",{"title":177,"path":178,"stem":179},"读取店铺公开分类","\u002Fzh\u002Freference\u002Foperations\u002Flist-public-merchant-categories","zh\u002F6.reference\u002F3.operations\u002F20.list-public-merchant-categories",{"title":181,"path":182,"stem":183},"读取店铺公开商品详情","\u002Fzh\u002Freference\u002Foperations\u002Fget-public-merchant-product","zh\u002F6.reference\u002F3.operations\u002F21.get-public-merchant-product",{"title":185,"path":186,"stem":187},"读取当前 API Key 的标识与 scope","\u002Fzh\u002Freference\u002Foperations\u002Fget-api-key-identity","zh\u002F6.reference\u002F3.operations\u002F22.get-api-key-identity",{"title":189,"path":190,"stem":191},"通过 API Key 读取公开分类","\u002Fzh\u002Freference\u002Foperations\u002Flist-api-key-catalog-categories","zh\u002F6.reference\u002F3.operations\u002F23.list-api-key-catalog-categories",{"title":193,"path":194,"stem":195},"通过 API Key 读取公开商品目录","\u002Fzh\u002Freference\u002Foperations\u002Flist-api-key-catalog-products","zh\u002F6.reference\u002F3.operations\u002F24.list-api-key-catalog-products",{"title":197,"path":198,"stem":199},"通过 API Key 读取公开商品","\u002Fzh\u002Freference\u002Foperations\u002Fget-api-key-catalog-product","zh\u002F6.reference\u002F3.operations\u002F25.get-api-key-catalog-product",{"title":201,"icon":202,"path":203,"stem":204,"children":205,"page":21},"示例","i-lucide-code-xml","\u002Fzh\u002Fexamples","zh\u002F7.examples",[206,210],{"title":207,"path":208,"stem":209},"最小 Nuxt Storefront","\u002Fzh\u002Fexamples\u002Fnuxt-storefront","zh\u002F7.examples\u002F1.nuxt-storefront",{"title":211,"path":212,"stem":213},"Webhook 验签","\u002Fzh\u002Fexamples\u002Fwebhook-verification","zh\u002F7.examples\u002F2.webhook-verification",{"title":215,"icon":216,"path":217,"stem":218,"children":219,"page":21},"版本与支持","i-lucide-life-buoy","\u002Fzh\u002Foperations","zh\u002F8.operations",[220,224],{"title":221,"path":222,"stem":223},"版本、迁移与变更记录","\u002Fzh\u002Foperations\u002Fversions-and-migrations","zh\u002F8.operations\u002F1.versions-and-migrations",{"title":225,"path":226,"stem":227},"支持与安全披露","\u002Fzh\u002Foperations\u002Fsupport-and-security","zh\u002F8.operations\u002F2.support-and-security",{"id":229,"title":61,"body":230,"description":276,"extension":277,"links":278,"meta":279,"navigation":280,"path":62,"seo":281,"stem":63,"__hash__":282},"docs_zh\u002Fzh\u002F4.platform\u002F2.security-and-environments.md",{"type":231,"value":232,"toc":272},"minimark",[233,237,241,244,260,263,266,269],[234,235,61],"h1",{"id":236},"originredirect反向代理与环境",[238,239,240],"p",{},"生产 redirect URI 与浏览器 Origin 必须是无凭据、无片段的精确 HTTPS 值。redirect URI 匹配包含路径和已登记 query 语义。Origin allowlist 只允许浏览器读取响应，不授予 OAuth scope 或资源归属。",[238,242,243],{},"第三方反向代理不得展示、嵌入或仿冒 Ayalink 登录页，不得收集邮箱、密码或 MFA，也不得转发全局 session Cookie、authorization code 或 token。用户只在官方 Ayalink authorization domain 完成登录；第三方只接收自己 app 的最小、短期、可撤销 grant。Origin、CORS、Host header、tenantId、slug 和代理所在网络均不构成授权。",[238,245,246,247,251,252,255,256,259],{},"BFF 必须与第三方应用同源，只保存该应用自己的 OAuth grant，并使用 ",[248,249,250],"code",{},"HttpOnly","、",[248,253,254],{},"Secure","、适当 ",[248,257,258],{},"SameSite"," 的应用会话 Cookie。它不能替代 Ayalink 授权服务器、要求用户输入 Ayalink 密码\u002FMFA、把 Ayalink Cookie 转发给商家域，或根据 Host header 推断 tenant 归属。服务端 grant 不得进入浏览器 bundle、URL、日志或分析系统。",[238,261,262],{},"恶意反代可能使用同形域名、TLS 终止和注入脚本记录全部登录因素。用户应核对官方 authorization domain；怀疑受骗时从官方入口撤销 app\u002Finstallation grant、退出会话、更新密码并重新配置 MFA，再通过官方安全渠道报告。",[238,264,265],{},"Sandbox 与 Production 使用不同 client、installation、secret、配额、Webhook endpoint、mapping、intent 和数据域。即使 app\u002Fstore 标识看起来相似，sandbox token 也会被 production 拒绝。",[238,267,268],{},"环境变量接管的设置在 Merchant\u002FAdmin 中只读并标注来源。Secret 只在创建\u002F轮换时显示一次，随后只能看到遮罩摘要。缺少加密主密钥或 Provider 凭据时失败关闭，UI 不得宣称能力已启用。",[238,270,271],{},"DPoP、refresh-token rotation、token-family replay detection 和用户 grant 管理入口尚未开放或仍待安全审计；本文不把它们描述为已支持。API Reference 在审计完成前不发布 OAuth endpoint 或请求\u002F响应示例。",{"title":273,"searchDepth":274,"depth":274,"links":275},"",2,[],"隔离 Sandbox\u002FProduction，并防止 Origin、redirect 与反向代理混淆。","md",null,{},true,{"title":61,"description":276},"cW3CXN4bzorFzS-s47Vfw46GzHIcXjzPKksrSWehGJE",[284,286],{"title":57,"path":58,"stem":59,"description":285,"children":-1},"使用不可变应用版本和店铺绑定安装实现最小权限授权。",{"title":71,"path":72,"stem":73,"description":287,"children":-1},"验证安装级 Webhook、轮换 secret、防重放并处理重试与死信恢复。",1785961917365]