1. Web Browser 使用SDK

1.1. 引入lovearth-xdua-browser-sdk

这里告诉你如何在浏览器,webview项目中引入xdua. 本SDK实用ES6语法,不兼容ES5语法.开发者需要自行转换到ES5.


使用npm安装lovearth-xdua-browser-sdk

npm install lovearth-xdua-browser-sdk --save

建议您使用9.0以上的npm

1.2. 开始使用 dua

在使用地球号之前,你必须初始化dua类。你只需要调用dua.initialize()一次即可完成初始化,在 代码一开始做这件事再适合不过了(如下面的代码),注意多次的调用初始化是无意义的。

const lovearth = require('lovearth-xdua-browser-sdk')
const dua = await lovearth({
    APP_KEY: "您的appkey",
    APP_SECRET: "您的appsecret",
})

地球号支持短信验证码和邮箱验证码两种验证码。

1.3. 验码管理

验码管理

1.3.1. 短信验码

字段名 字段说明 字段举例
tel 用户电话 +86-15810*011
api_name = "短信验码";
let res = await dua.addVfcodeByTel("+86-15810419011")
if(res.error == 0){
    console.log(api_name+"成功");
}else{
    console.log(api_name+"失败 "+res.reason);
}

用户收到的短信验证码的格式如下: 【地球号】尊敬的用户:您的校验码: 479711,工作人员不会索取,请勿泄露。

1.3.2. 邮箱验码

字段名 字段说明 字段举例
mail 用户电话 example@email.com
api_name = "邮箱验码";
let res = await dua.addVfcodeByMail("jiaoshuai@ict.ac.cn")
if(res.error == 0){
    console.log(api_name+"成功");
}else{
    console.log(api_name+"失败 "+res.reason);
}

邮箱验证码截图

1.4. 用户注册

用户注册

支持三种种注册方式:电话,邮箱,户名。电话和邮箱注册需要验证码

1.4.1. 电话注册

字段名 字段说明 字段举例
by 注册方式 tel
tel 用户电话 +86-15810*011
pwd 用户密码 对明文密码进行md5后的md5码
vfcode 验证码 通过电话获取的短信验证码
ugrp 户群号 通过管理员获取的户群id
role 角色名 通过管理员获取的角色名
api_name = "电话注册";
added_user_id = "anonymus";
let res = await dua.addUser({
    by  :   "tel",
    ustr:   "+86-15810419021",
    pwd :   "a906449d5769fa7361d7ecc6aa3f6d28",
    vfcode: "您通过邮箱或短信获取的6位验证码",
    ugrp:   "您的户群id",
    role:   "您要注册的用户在户群下的角色"
})
if(res.error == 0){
    //注册成功不会返回任何用户信息,客户端也不能利用注册产生的信息。
    console.log(api_name+"成功");
}else{
    console.log(api_name+"失败 "+res.reason);
}

1.4.2. 邮箱注册

字段名 字段说明 字段举例
mail 用户邮箱 example@email.com
pwd 用户密码 对明文密码进行md5后的md5码
vfcode 验证码 通过电话获取的短信验证码
ugrp 户群号 通过管理员获取的户群id
role 角色名 通过管理员获取的角色名
api_name = "电话注册";
added_user_id = "anonymus";
let res = await dua.addUser({
    by  :   "tel",
    ustr:   "+86-15810419021",
    pwd :   "a906449d5769fa7361d7ecc6aa3f6d28",
    vfcode: "您通过邮箱或短信获取的6位验证码",
    ugrp:   "您的户群id",
    role:   "您要注册的用户在户群下的角色"
})
if(res.error == 0){
    console.log(api_name+"成功");
}else{
    console.log(api_name+"失败 "+res.reason);
}

1.4.3. 户名注册

字段名 字段说明 字段举例
name 用户名 examplenickname
pwd 用户密码 对明文密码进行md5后的md5码
ugrp 用户户群 注册时的初始户群
role 用户户群 注册时的初始角色
//废弃,暂不支持
api_name = "户名注册";
let res = await dua.addUser({
    by  :   "name",
    ustr:   "+86-15810419021",
    pwd :   "a906449d5769fa7361d7ecc6aa3f6d28",
    vfcode: "vfcode",
    ugrp:   "您的户群id",
    role:   "您要注册的用户在户群下的角色"
})
if(res.error == 0){
    console.log(api_name+"成功");
}else{
    console.log(api_name+"失败 "+res.reason);
}

1.5. 密码管理

密码管理

1.5.1. 修改密码

字段名 字段说明 字段举例
user_id 用户id 8位数字字母大小写,通过登录接口获取
oldpass 用户的旧密码 32位md5
newpass 用户的新密码 32位md5
try {
    let res = await dua.chgPass({
        user_id:"4ivmegH1",
        oldpwd:"a906449d5769fa7361d7ecc6aa3f6d28",
        pwd:"a906449d5769fa7361d7ecc6aa3f6d28",
    });
    console.log("修改密码成功:");
} catch (e) {
    console.log("修改密码失败:"+e);
}

1.5.2. 重置密码

字段名 字段说明 字段举例
by 重置方式 tel/mail/incode
ustr 用户名称 邮箱/电话/昵称
vfcode 验证码 使用用户绑定电话获取的短信验证码
pwd 新的密码 md5编码的密码
try {
    let res = await dua.rstPass({
        by:"tel",
        ustr:"+86-15810419011",
        vfcode:"FFFFFF",
        pwd:"a906449d5769fa7361d7ecc6aa3f6d28"
    });
    console.log("重置密码成功:");
} catch (e) {
    console.log("重置密码失败:"+e);
}

1.6. 用户管理

用户登录

1.6.1. 用户登录

支持三种登录方式:电话,邮箱,姓名。邮箱依example@email.com格式,tel依+86-15810**1格式。

字段名 字段说明 字段举例
by 登录方式 tel/mail/name 三种
ustr 用户名 邮箱/电话/姓名
pwd 用户密码 密码md5编码
ugrp 用户户群 用户登录到哪个户群
role 用户角色 用户以什么角色登录
let api_name = "用户登录";
await dua.initialize()
let res = await dua.login({
    by  :   "tel",
    ustr:   '+86-15810419011',
    pwd :   'a906449d5769fa7361d7ecc6aa3f6d28',
    ugrp:   "dua",
    role:   "none"
})
console.log(res);
if(res.error == 0){
    console.log(api_name+"成功");
}else{
    console.log(api_name+"失败:"+res.reason);
}

//返回的数据格式如下
{ 
    status: 0,
    result:{   
        token:'eyJhbGciOiJSUzI1NiIsImtpZCI6ImI1MGIxZWZmZGMwMzVlMjg2OWI2YzQ1ZjMzYmRmNWQ3In0.eyJpYXQiOjE1Mzc1MTEyMzEsIm5iZiI6MTUzNzUxMTIzMSwiZXhwIjoxNTM3NTE0ODMxLCJpc3MiOiJMb3ZlYXJ0aCBEVUEgU2VydmljZSIsImF1ZCI6IkxvdmVhcnRoIEluYyIsImR1YSI6IjNRMGZmWkFWIiwiZGlkIjoiaHRSdEtvQjQiLCJ1aWQiOiJEdDVtdnJ0VSIsImFpZCI6IjZyNnhDSHJXIn0.gLBbvukLNyRpXrVLIPyt8SGqgV9oMmiSZbUyEDC2zlhWSQ7_wCufocIZ_LlNG8CIDIo3FuvEwKxyhWBqztCNfN9kxIJrmXjA0Lkmx0nzRzsnyd26cEhdvv3a0LHli8SFfCqbmKquj9HchhFEhSXSVoD4MxpMvwm_jcCNgBQgPuneGICsDEfAuOy5TP2SsbPhaRDGg-YU6TB23P1NZzIaAzLoSY_2fZxk9bw_-g_Lcf_WCoeBz9F4u-hCnVzW-lWDNQCMK4RtY0TaOS3WyBT2BjsaWry726jMb4zOOQptIOBwlIlyMLk0x2erkRbhfa4rvHDIrDL1xVxY_RLCprfr3w',
        user_id: 'Dt5mvrtU'
    },
    reason: 'Success',
    debug: [] 
}

返回的数据格式

字段名 字段类型 字段说明
user_id String 登录用户会获取user_id,格式:8位数字母串
token String 用户登录获取的权限token,SDK此时已经把它保存在浏览器本地了.

1.6.2. 用户详情

api_name = "用户详情";
got_user_id = "4ivmegH1";
let res = await dua.getUser(got_user_id)
if(res.error == 0){
    console.log(api_name+"成功 "+got_user_id);
}else{
    console.log(api_name+"失败 "+res.reason);
}

//返回的数据格式
{ 
    id: '4ivmegH1',
    cstamp: '2016-09-10 11:17:53',
    tel: '86015810419012',
    name: 'dua:测试号1886034107',
    avatar:'{"urls": [{"src": "http://xdua-files.oss-cn-qingdao.aliyuncs.com/Avatar/806212a8b28111abc5c1376d3c906e9f3.png", "url": "http://xdua-files.oss-cn-qingdao.aliyuncs.com/Avatar/806212a8b28111abc5c1376d3c906e9f3.png"}]}',
    brief: '地球号第一号'
}

1.6.3. 用户删除

api_name = "用户删除";
let res = await dua.delUser(added_user_id)
if(res.error == 0){
    console.log(api_name+"成功 ");
}else{
    console.log(api_name+"失败 "+res.reason);
}

1.6.4. 修改用户

if(added_user_id == "anonymus"){
    print("can not modify user:anonymus");
    return false;
}
let res = await dua.putUser(user_id,{
    name: "新名字",
    avatar:"新的头像",
})

1.6.5. 查询用户

api_name = "用户查询";
let res = await dua.qryUser({})
if(res.error == 0){
    console.log(api_name+"成功 "+got_user_id);
}else{
    console.log(api_name+"失败 "+res.reason);
}

1.7. 户群管理

户群管理

1.7.1. 创建户群

字段名 字段说明 字段举例
code 户群的代号 my_ugrp_code
name 户群的名字 我的户群
brief 户群的简介 我的户群简介
avatar 户群的头像 我的头像地址
api_name = "创建户群";
got_ugrp_id = "";
let res = await dua.addUgrp({
    code:"test_ugrp_rand",
    name:"测试用户组",
    brief:"测试用户组简介", 
    avatar:"测试用户组头像"
})
if(res.error == 0){
    got_ugrp_id = res.result.id;
    console.log(api_name+"成功 "+got_ugrp_id);
}else{
    console.log(api_name+"失败 "+res.reason);
}

1.7.2. 删除户群

字段名 字段说明 字段举例
ugrp_id 户群的id fbe261e0
    api_name = "删除户群";
    let res = await dua.delUgrp(got_ugrp_id)
    if(res.error == 0){
        console.log(api_name+"成功 "+got_ugrp_id);
    }else{
        console.log(api_name+"失败 "+res.reason);
    }

1.7.3. 修改户群

字段名 字段说明 字段举例
ugrp_id 户群的id fbe261e0
api_name = "修改户群";
let cur_ugrp_id = "fbe261e0";
let res = await dua.putUgrp(cur_ugrp_id,{name:"test_ugrp_set"})
if(res.error == 0){
    console.log(api_name+"成功 "+cur_ugrp_id);
}else{
    console.log(api_name+"失败 "+res.reason);
}

1.7.4. 查询户群

字段名 字段说明 字段举例
ugrp_id 户群的id fbe261e0
api_name = "查询户群";
let res = await dua.qryUgrp({})
if(res.error == 0){
    console.log(api_name+"成功 "+cur_ugrp_id);
}else{
    console.log(api_name+"失败 "+res.reason);
}

1.7.5. 户群详情

字段名 字段说明 字段举例
ugrp_id 户群的id fbe261e0
    api_name = "户群详情";
    cur_ugrp_id = "fbe261e0";
    let res = await dua.getUgrp(cur_ugrp_id)
    if(res.error == 0){
        console.log(api_name+"成功 "+cur_ugrp_id);
    }else{
        console.log(api_name+"失败 "+res.reason);
    }

1.8. 角色管理

角色管理

1.8.1. 创建角色

字段名 字段说明 字段举例
code 角色的代号 my_role_code
name 角色的名字 我的角色
ugrp 角色的户群 我的角色简介
brief 角色的简介 我的角色简介
avatar 角色的头像 我的头像地址
granter 授权角色 我的授权角色
    api_name = "创建角色";
    let role_id = "";
    let res = await dua.addRole({
        code:"test_role_rand",
        name:"测试角色",
        ugrp:"test_ugrp", 
        granter:"test_role2"
    })
    if(res.error == 0){
        role_id = res.result.id;
        console.log(api_name+"成功 "+cur_ugrp_id);
    }else{
        console.log(api_name+"失败 "+res.reason);
    }

//返回的数据格式

1.8.2. 删除角色

字段名 字段说明 字段举例
role_id 角色的id fbe261e0
    api_name = "删除角色";
    try {
        let res = await dua.delRole(role_id);
         if(res.error == 0){
            console.log(api_name+"成功 ");
        }else{
            console.log(api_name+"失败 "+res.reason);
        }

    } catch (e) {
        console.log(api_name+"例外 "+e);
    }

1.8.3. 修改角色

字段名 字段说明 字段举例
role_id 角色的id fbe261e0
api_name = "修改角色";
let res = await dua.putRole(role_id,{"name":"test_role_set"})
if(res.error == 0){
    console.log(api_name+"成功 "+cur_ugrp_id);
}else{
    console.log(api_name+"失败 "+res.reason);
}

1.8.4. 查询角色

字段名 字段说明 字段举例
role_id 角色的id fbe261e0
api_name = "查询角色";
let res = await dua.qryRole({})
 if(res.error == 0){
    console.log(api_name+"成功 ");
}else{
    console.log(api_name+"失败 "+res.reason);
}

1.8.5. 角色详情

字段名 字段说明 字段举例
role_id 角色的id fbe261e0
api_name = "角色详情";
let res = await dua.getRole(role_id)
 if(res.error == 0){
    console.log(api_name+"成功 "+cur_ugrp_id);
}else{
    console.log(api_name+"失败 "+res.reason);
}

1.9. 授权管理

授权管理

1.9.1. 创建授权

字段名 字段说明 字段举例
role 授权的代号 my_usro_code
ugrp 授权的名字 我的授权
towho 授权的头像 我的头像地址
    api_name = "创建授权";
    usro_id = "";
    let res = await dua.addUsro({
        role:"test_role",
        ugrp:"test_ugrp", 
        towho:"4ivmegH1"
    })
    usro_id = res.result.id;
     if(res.error == 0){
        console.log(api_name+"成功 ");
    }else{
        console.log(api_name+"失败 "+res.reason);
    }

1.9.2. 删除授权

字段名 字段说明 字段举例
usro_id 授权的id fbe261e0
api_name = "删除授权";
let res = await dua.delUsro(usro_id)
 if(res.error == 0){
    console.log(api_name+"成功 ");
}else{
    console.log(api_name+"失败 "+res.reason);
}

1.9.3. 修改授权

字段名 字段说明 字段举例
usro_id 授权的id fbe261e0
api_name = "修改授权";
let res = await dua.putUsro(usro_id,{name:"test_usro_set"})
 if(res.error == 0){
    console.log(api_name+"成功 ");
}else{
    console.log(api_name+"失败 "+res.reason);
}

1.9.4. 查询授权

字段名 字段说明 字段举例
usro_id 授权的id fbe261e0
api_name = "查询授权";
let res = await dua.qryUsro({})
 if(res.error == 0){
    console.log(api_name+"成功 ");
}else{
    console.log(api_name+"失败 "+res.reason);
}

1.9.5. 授权详情

字段名 字段说明 字段举例
usro_id 授权的id fbe261e0
api_name = "授权详情";
let res = await dua.getUsro(usro_id)
 if(res.error == 0){
    console.log(api_name+"成功 ");
}else{
    console.log(api_name+"失败 "+res.reason);
}

1.10. 应用管理

应用管理

1.10.1. 创建应用

字段名 字段说明 字段举例
role 应用的代号 my_app_code
ugrp 应用的名字 我的应用
towho 应用的头像 我的头像地址
    api_name = "创建应用";
    app_id = "";
    let res = await dua.addApp({
        pkg:"com.test.rand2"+(Math.random()*1000),
        name:"测试应用",
        ugrp:"test_ugrp",
        brief:"测试简介",
        avatar:"头像", 
    })
    app_id = res.result.id;
    if(res.error == 0){
        console.log(api_name+"成功 ");
    }else{
        console.log(api_name+"失败 "+res.reason);
    }

1.10.2. 删除应用

字段名 字段说明 字段举例
app_id 应用的id fbe261e0
api_name = "删除应用";
let res = await dua.delApp(app_id)
 if(res.error == 0){
    console.log(api_name+"成功 ");
}else{
    console.log(api_name+"失败 "+res.reason);
}

1.10.3. 修改应用

字段名 字段说明 字段举例
app_id 应用的id fbe261e0
api_name = "修改应用";
let res = await dua.putApp(app_id,{name:"修改后的应用名字"})
 if(res.error == 0){
    console.log(api_name+"成功 ");
}else{
    console.log(api_name+"失败 "+res.reason);
}

1.10.4. 查询应用

字段名 字段说明 字段举例
app_id 应用的id fbe261e0
api_name = "查询应用";
let res = await dua.qryApp({})
 if(res.error == 0){
    console.log(api_name+"成功 ");
}else{
    console.log(api_name+"失败 "+res.reason);
}

1.10.5. 应用详情

字段名 字段说明 字段举例
app_id 应用的id fbe261e0
    api_name = "应用详情";
    let res = await dua.getApp(app_id)
     if(res.error == 0){
        console.log(api_name+"成功 ");
    }else{
        console.log(api_name+"失败 "+res.reason);
    }

results matching ""

    No results matching ""