工单机制(Ticket)

敏感中间态——OTP 码、验证码挑战、登录尝试状态、支付敏感数据——绝不经原文跨服务转发。

规则

  1. 所属服务存态:签发方将敏感状态存入自己的数据库,对外只交付一个不透明工单(单用途、带过期)。
  2. 回源校验:下游把工单原样传回,只有签发服务能校验与消费它(validate at source);其他服务无法解读工单内容。
  3. 单次消费:消费型操作(如签发会话时消费尝试工单)消费即失效;inspect 类操作不消费。

共享契约

工单的签发 / 查看 / 消费契约沉淀在 libs/ticket,各服务复用同一套类型与工具,不自造格式。

典型流转

otp_service(存码、签工单)api_serviceotp_worker用户 发码(码只在短信/邮件内容里)提交验证码 + 工单otp.code.verify(码 + 工单回源)校验、累加尝试分、签发新工单结果 + 新工单otp.send.requested落库投递结果

工单把秘密关在所属服务内部;跨服务链路上流动的只有不透明凭据。