发起邮箱、手机、钱包或设备登录
ARCHITECTURE DOSSIER · 01
身份与访问控制
OTP、JWT、应用会话、设备身份与权限边界
AUTHCODE + RUNTIME + QATLS、host/path 路由与公开限流
email OTP、active/previous kid JWT、session liveness/revoke
验证码与设备验证能力
二次校验 active/client/scope/subject/tenant/object
单实例内存 challenge/limiter;MySQL 会话 liveness 与 append-only event
CRITICAL SEQUENCE
真实主链与事务边界
每一步都必须能回到调用方、契约、状态 owner 与失败证据;UI 只显示服务端已经确认的真值。
- 01
Client 通过固定 route 提交邮箱与用途
→ - 02
reits-auth 以 client/kind/subject 限流并创建 600s challenge
→ - 03
im-core verification 发送并校验 email OTP
→ - 04
Auth 先写 auth_sessions 再返回带 iss/aud/client/sid/auth_time/refresh_exp 的 token
→ - 05
refresh/introspect/me 校验 registry liveness 与 claim 边界
→ - 06
用户可列出并撤销当前/单个/其他同 client 会话,事件写入安全回执
→ - 07
业务服务验证 token、active session、租户、required scope 与 object binding
INTERFACE REGISTER
跨项目接口与安全条件
producer、consumer、契约和 guard 同时登记;其中任何一列缺失都不能进入多团队并行开发。
POST /otp/request · /otp/verifyreits-authIP + subject rate limit
JWT {sub,iss,aud,client,scopes,sid,auth_time,refresh_exp}Booking / Open Platformissuer + audience + required scope + tenant/object
GET /v1/sessions · POST /v1/sessions/{id}/revoke · /current/revoke · /revoke-othersSecurity UI / server adaptercurrent active session + same subject/client
device session / MFA contextim-coredevice binding + revoke
STATE OWNERSHIP
数据真值与恢复
STOREin-memory ChallengeStore
RETENTION600s TTL / bounded key-space
RECOVERY进程重启即清空,重新发起
STOREsigned JWT + MySQL auth_sessions
RETENTION1h access / 24h refresh boundary;最多 20 active / subject+client
RECOVERY可逐会话撤销;MariaDB dump 存在,隔离恢复演练未证明
STOREMySQL auth_session_events
RETENTIONappend-only policy current;长期 retention 待定义
RECOVERY随 MariaDB dump;不含 token/IP/UA
STOREPostgreSQL + Redis
RETENTION至撤销/过期
RECOVERYdurable truth from DB
FAILURE MODEL
故障必须怎样收敛
SYMPTOM验证码请求或校验失败
CONTAIN公开只读面继续;禁止降级为免认证写入
OTP synthetic + error codeSYMPTOMAuth 已撤销但该资源服务器仍可能接受未过期 token
CONTAIN复制 K19 no-cache introspection/active-session guard;强制 client/scope/subject/tenant/object;必要时经审批轮换密钥
Open Platform / Booking 已完成;其余需逐项登记SYMPTOMrefresh/introspect/me 与登录发 token fail-closed
CONTAINhealth 仍表示进程存活,ready 返回 503;公共只读面独立
双依赖 readiness + store failure testsSYMPTOM低权限 token 执行高风险动作
CONTAIN服务端 deny-by-default
跨服务 contract testQA RELEASE GATES
不是画完架构图就算完成
这些门禁连接 UI 状态、接口负向路径、运行证据与可恢复性;发布证据必须绑定 exact commit。
生产旁路必须关闭
完成 · 157b859 config/store preflight + safe external smoke
client/scope/subject/object 负向测试
K19 17 consumer checks + K20 17/17 cross-process witness
OTP 限流、过期、重放
source negative 通过;真实生产 OTP E2E 未执行
会话撤销与设备退出
Auth durable registry/revoke CURRENT;Open Platform / Booking propagation CURRENT;产品 UI、设备联邦与其余消费者 PARTIAL
active/previous/no-kid 密钥生命周期
K21 Phase A CURRENT;7-row negative matrix PASS;Phase B approval required