目前支持小程序

原始解密流程

在请求包含敏感数据接口的时候,需要如下流程 (以tt.getuserInfo为例) ,才能获取到加密数据。

上云解密流程的优化

在小程序托管上云之后,则可免去自己解密的过程。
目前支持以下接口:
接口的明文内容将不包含这些敏感数据,而是在返回的接口中包含对应敏感数据的 cloudID 字段,数据可以通过云托管调用获取。完整流程如下:
1. 获取 cloudID
在开放数据接口的返回值中可以通过 cloudID 字段获取(与 encryptedData 同级),cloudID 有效期五分钟。
2.发起业务请求
开发者发起请求
const cloud = tt.createCloud({envID:'envID',serviceID:'serviceID'}) cloud.callContainer({ path:'/example', init:{ method:'POST', header:{ "content-type": "application/json", }, body:{ example:'example', info: cloud.CloudID('获取的CloudID') }, timeout: 600000,//ms }, success:({statusCode, header, data})=>{ JSON.parse(data) }, fail:console.warn, complete:console.warn, })
cloudId 解密成功,结果如下:
data:{ "info:": { "cloudID": "xxx", "data": { "stepInfoList": [ { "step": 5000, "timestamp": 1554814312, } ], "watermark": { "appid": "tt1111111111", "timestamp": 1554815786 } } }, "obj": { // 非顶层字段维持原样 "shareInfo": "yyy", } }
cloudId失效解密失败,结果如下:
data:{ "info:": { "cloudID": "xxx", "errCode": 14001,//失效为该值 "errMsg": "cloudID expired." }, "obj": { // 非顶层字段维持原样 "shareInfo": "yyy", } }

注意:

    1.仅支持 Content-Type :application/json。
    2.只关注data最外层的5个cloudId,如果超过5个,则失败回调 。
{ errMsg:'callContainer:fail callContainer cannot have more than 5 CloudID', errNo: 20000, }