Files

106 lines
7.3 KiB
XML
Raw Permalink Normal View History

2026-08-23 21:35:45 +08:00
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 800" width="1000" height="800" font-family="'PingFang SC','Microsoft YaHei','Noto Sans SC',system-ui,sans-serif">
<defs>
<marker id="ah" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse">
<path d="M0,0 L10,5 L0,10 z" fill="#4f46e5"/>
</marker>
<marker id="ah-teal" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse">
<path d="M0,0 L10,5 L0,10 z" fill="#0d9488"/>
</marker>
<filter id="shadow" x="-8%" y="-8%" width="120%" height="130%">
<feDropShadow dx="0" dy="2" stdDeviation="3" flood-color="#0f172a" flood-opacity="0.10"/>
</filter>
</defs>
<rect x="0" y="0" width="1000" height="800" fill="#fbfcfe"/>
<text x="500" y="38" text-anchor="middle" font-size="22" font-weight="700" fill="#0f172a">统一身份 · 多端互通</text>
<text x="500" y="62" text-anchor="middle" font-size="13" fill="#64748b">账号密码 / 手机号 / 微信 → 同一个身份 → 数据全部归属 user_id</text>
<!-- 三种登录 -->
<g filter="url(#shadow)">
<rect x="70" y="90" width="260" height="90" rx="12" fill="#ffffff" stroke="#16a34a" stroke-width="2"/>
<text x="92" y="118" font-size="15" font-weight="700" fill="#15803d">桌面 / 管理端</text>
<text x="92" y="142" font-size="12" fill="#334155">账号密码 + select-identity</text>
<text x="92" y="162" font-size="11" fill="#64748b">智能体桌面 · admin管理平台</text>
</g>
<g filter="url(#shadow)">
<rect x="370" y="90" width="260" height="90" rx="12" fill="#ffffff" stroke="#16a34a" stroke-width="2"/>
<text x="392" y="118" font-size="15" font-weight="700" fill="#15803d">web业务</text>
<text x="392" y="142" font-size="12" fill="#334155">手机号 + 验证码</text>
<text x="392" y="162" font-size="11" fill="#64748b">/auth/send-code · phone-login</text>
</g>
<g filter="url(#shadow)">
<rect x="670" y="90" width="260" height="90" rx="12" fill="#ffffff" stroke="#16a34a" stroke-width="2"/>
<text x="692" y="118" font-size="15" font-weight="700" fill="#15803d">小程序</text>
<text x="692" y="142" font-size="12" fill="#334155">微信 wx.login</text>
<text x="692" y="162" font-size="11" fill="#64748b">getPhoneNumber 一键绑号</text>
</g>
<!-- 三端 → 身份域 -->
<line x1="200" y1="180" x2="200" y2="260" stroke="#4f46e5" stroke-width="2" marker-end="url(#ah)"/>
<line x1="500" y1="180" x2="500" y2="260" stroke="#4f46e5" stroke-width="2" marker-end="url(#ah)"/>
<line x1="800" y1="180" x2="800" y2="260" stroke="#4f46e5" stroke-width="2" marker-end="url(#ah)"/>
<!-- 身份域 -->
<g filter="url(#shadow)">
<rect x="70" y="260" width="860" height="170" rx="14" fill="#eef2ff" stroke="#6366f1" stroke-width="2"/>
<text x="92" y="292" font-size="17" font-weight="700" fill="#4338ca">核心服务端 · 身份域(PineAgentsServer</text>
<text x="92" y="316" font-size="12" fill="#4f46e5">同一账号 = 同一个 user_id,可挂多个端口身份</text>
<rect x="90" y="336" width="255" height="80" rx="10" fill="#ffffff" stroke="#a5b4fc" stroke-width="1.5"/>
<text x="108" y="360" font-size="13" font-weight="700" fill="#4338ca">users</text>
<text x="108" y="382" font-size="11" fill="#4f46e5">username / phone / 微信 openid</text>
<text x="108" y="400" font-size="11" fill="#4f46e5">密码哈希 + 加盐</text>
<rect x="365" y="336" width="255" height="80" rx="10" fill="#ffffff" stroke="#a5b4fc" stroke-width="1.5"/>
<text x="383" y="360" font-size="13" font-weight="700" fill="#4338ca">user_identities</text>
<text x="383" y="382" font-size="11" fill="#4f46e5">一账号多端口身份</text>
<text x="383" y="400" font-size="11" fill="#4f46e5">port / role / sub_role / region</text>
<rect x="640" y="336" width="270" height="80" rx="10" fill="#ffffff" stroke="#a5b4fc" stroke-width="1.5"/>
<text x="658" y="360" font-size="13" font-weight="700" fill="#4338ca">select-identity</text>
<text x="658" y="382" font-size="11" fill="#4f46e5">按身份签发 token</text>
<text x="658" y="400" font-size="11" fill="#4f46e5">角色 / 权限 / 数据范围即时生效</text>
</g>
<!-- 身份域 → 端口 -->
<line x1="500" y1="430" x2="500" y2="500" stroke="#4f46e5" stroke-width="2" marker-end="url(#ah)"/>
<text x="514" y="472" font-size="11" fill="#4f46e5" font-weight="600" paint-order="stroke" stroke="#fff" stroke-width="3">选择身份</text>
<!-- 七端口 -->
<g filter="url(#shadow)">
<rect x="70" y="500" width="860" height="72" rx="12" fill="#ffffff" stroke="#818cf8" stroke-width="1.5"/>
<text x="92" y="524" font-size="12" font-weight="700" fill="#6366f1">七端口</text>
</g>
<g font-size="11.5" fill="#4338ca" font-weight="600">
<rect x="170" y="512" width="86" height="46" rx="8" fill="#eef2ff" stroke="#c7d2fe" stroke-width="1"/>
<text x="213" y="539" text-anchor="middle">opc_member</text>
<rect x="264" y="512" width="70" height="46" rx="8" fill="#eef2ff" stroke="#c7d2fe" stroke-width="1"/>
<text x="299" y="539" text-anchor="middle">operator</text>
<rect x="342" y="512" width="82" height="46" rx="8" fill="#eef2ff" stroke="#c7d2fe" stroke-width="1"/>
<text x="383" y="539" text-anchor="middle">government</text>
<rect x="432" y="512" width="72" height="46" rx="8" fill="#eef2ff" stroke="#c7d2fe" stroke-width="1"/>
<text x="468" y="539" text-anchor="middle">enterprise</text>
<rect x="512" y="512" width="66" height="46" rx="8" fill="#eef2ff" stroke="#c7d2fe" stroke-width="1"/>
<text x="545" y="539" text-anchor="middle">provider</text>
<rect x="586" y="512" width="60" height="46" rx="8" fill="#eef2ff" stroke="#c7d2fe" stroke-width="1"/>
<text x="616" y="539" text-anchor="middle">carrier</text>
<rect x="654" y="512" width="70" height="46" rx="8" fill="#eef2ff" stroke="#c7d2fe" stroke-width="1"/>
<text x="689" y="539" text-anchor="middle">investor</text>
<rect x="732" y="512" width="78" height="46" rx="8" fill="#eef2ff" stroke="#c7d2fe" stroke-width="1"/>
<text x="771" y="539" text-anchor="middle">developer</text>
</g>
<!-- 端口 → 业务数据 -->
<line x1="500" y1="572" x2="500" y2="650" stroke="#0d9488" stroke-width="2" marker-end="url(#ah-teal)"/>
<text x="514" y="618" font-size="11" fill="#0d9488" font-weight="600" paint-order="stroke" stroke="#fff" stroke-width="3">以身份访问业务</text>
<!-- 业务数据 -->
<g filter="url(#shadow)">
<rect x="70" y="650" width="860" height="100" rx="14" fill="#f0fdf4" stroke="#16a34a" stroke-width="2"/>
<text x="92" y="680" font-size="16" font-weight="700" fill="#15803d">业务数据 · 全部归属 user_id</text>
<text x="92" y="706" font-size="12" fill="#334155">课程报名 · 测评结果 · 算力额度 · 入驻申请 · 财务流水 · 工商代办 · 政策申报</text>
<text x="92" y="728" font-size="11" fill="#64748b">→ 同一人在智能体桌面 / 管理平台 / web业务 / 小程序 / 官网 / 大屏任意一端操作,数据落在同一身份上</text>
</g>
<text x="500" y="785" text-anchor="middle" font-size="11" fill="#94a3b8">大屏 = 园区账号(carrier 身份);官网 = 公开访问;均复用同一身份体系(六端共用)。</text>
</svg>