Table of Contents

18.8 JSON 写请求加密

POST、PUT、PATCH、DELETE 的 JSON 业务请求使用:

Content-Type: application/vnd.tieup.encrypted+json
X-Session-Id: tieup_sess_xxx

Content-Type 可附带 charset,例如 application/vnd.tieup.encrypted+json; charset=utf-8。请求 body 是纯 Base64URL 信封,不能再包成 JSON 字段,也不能使用表单或 multipart:

原始 JSON:{"artist_id":10001,"remark":"中文备注"}
载荷 data:{"artist_id":10001,"remark":"中文备注"}
发送 body:eyJ2IjoxLCJuIjoiLi4uIn0

空业务 body 也必须以 data={} 加密。兼容模式下原 application/json 可继续明文发送;一旦使用加密 Content-Type,body 就必须是合法密文,不能在解密失败后回退为明文。

服务端解密成功后执行 withParsedBody(data),将原始 body 重写为 JSON,并把 Content-Type 恢复为 application/json,随后再进入 FormRequest、TokenMiddleware 和 Controller。