SOURCE

function authorize(session, payload, metadata, deviceConfig) {
    function byteToString(arr) {
        if(typeof arr === 'string') {
            return arr;
        }
        var str = '',
            _arr = arr;
        for(var i = 0; i < _arr.length; i++) {
            var one = _arr[i].toString(2),
                v = one.match(/^1+?(?=0)/);
            if(v && one.length == 8) {
                var bytesLength = v[0].length;
                var store = _arr[i].toString(2).slice(7 - bytesLength);
                for(var st = 1; st < bytesLength; st++) {
                    store += _arr[st + i].toString(2).slice(2);
                }
                str += String.fromCharCode(parseInt(store, 2));
                i += bytesLength - 1;
            } else {
                str += String.fromCharCode(_arr[i]);
            }
        }
        return str;
    };

    var result = {};
    var payloadStr = byteToString(payload);
    console.log(payloadStr);

    result.auth = true;
    result.sn = payloadStr;
    result.category = "W610";

    return result;
}
console 命令行工具 X clear

                    
>
console