设备授权案例
# 设备授权案例
```JavaScript
var id_data = storages.create("本地id存储");
if(!id_data.get("设备id")){
//检查设备id是否存在,不存在则随机生成24位
var yourId = randomId(false,24);
//把设备id存入本地
id_data.put("设备id",yourId);
var ChooseItem = ["复制到粘贴板","不用了谢谢"]
var item_i = dialogs.select("首次使用你的设备id如下:\n"+yourId,ChooseItem);
if(item_i == 0){
//复制id到粘贴板
setClip(yourId);
toastLog("\n已复制设备id到输入法粘贴板");
}
}
var 你的收藏链接id_ = "2528d58dfeb07fb4661b1e669e9352a2";
var 获取链接内容_ = http.get("https://api.uomg.com/api/get.weiyun?wid=" + 你的收藏链接id_ + "&format=json").body.json().text;
var 需要检查的id = id_data.get("设备id");
var Permissions_result = CheckId(需要检查的id);
if (Permissions_result.授权状态_ == "已授权") {
//授权了可以执行什么
toastLog("恭喜,你的设备已授权");
} else {
//未授权该怎么做,这里是结束脚本
toastLog("\n抱歉,你的设备未授权,如需授权请联系管理员\n你的设备id已复制到粘贴板");
setClip(需要检查的id);
exit();
}
function CheckId(id) {
for (v of 获取链接内容_) {
if (v.id == id && v.授权_ == "已授权") {
return {
"授权状态_": "已授权",
"过期时间_": v.过期时间_
};
}
}
return {
"授权状态": "未授权",
"过期时间_": v.过期时间_
};
}
//心跳线程检查过期时间
threads.start(function() {
setInterval(() => {
var nowTime = IntTime();
if (nowTime > Permissions_result.过期时间_) {
toastLog("你的设备授权已过期,如需继续使用,请联系管理员\n设备id已复制到您的粘贴板");
setClip(需要检查的id);
exit();
}
}, 1000)
})
//获取网络时间,防止本地时间被修改
function IntTime() {
try {
var recode_suning = http.get("http://quan.suning.com/getSysTime.do");
var suningTime = recode_suning.body.json();
return suningTime.sysTime1;
} catch (e) {
toastLog("网络错误,请检查")
return 0;
}
}
//随机产生设备id
function randomId(randomFlag, min, max){
var str = "",
range = min,
arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
if(randomFlag){
range = Math.round(Math.random() * (max-min)) + min;
}
for(var i=0; i<range; i++){
pos = Math.round(Math.random() * (arr.length-1));
str += arr[pos];
}
return str;
}
```
----
# 网络时间验证
```JavaScript
var 验证时间 = time_validation(20191212121212)
if (验证时间) {
for (let i = 1; i < 10; i++) {
toastLog("我是主程序,已进行:" + i + "次");
sleep(1000);
}
} else {
toastLog("时间验证失败,结束脚本");
sleep(1000);
exit();
}
function time_validation(ntime) {
//网络时间
log("网络时间为:" + IntTime());
//本地时间
log("本地时间为:" + load_Time());
let abs_time = Math.abs(IntTime() - load_Time());
//网络和本地时间秒数差
log("时间差值为:" + abs_time + "秒");
if (abs_time < 10 && IntTime() < ntime) {
log("正常");
return true;
} else {
log("时间差过大");
log("已过期或本地时间被修改");
return false;
}
}
function load_Time() {
return new java.text.SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
}
function IntTime() {
try {
var recode_suning = http.get("http://quan.suning.com/getSysTime.do");
var suningTime = recode_suning.body.json();
return suningTime.sysTime1;
} catch (e) {
log("网络错误")
return 0;
}
}
```
----