1. 创建令牌

接口功能:创建令牌(获取匿名令牌)

POST:http://api.xdua.com/auth

Content-Type:application/x-www-form-urlencoded

请求数据格式

字段名 字段位置 字段类型 字段说明 可选
apiv head String API接口版本号:默认1.0.0 可选
Authorization head string 签名.参考签名生成方法 必选
dsn body string 设备序列号 必须
type body string android:android应用,ios:ios应用,browser:浏览器应用,pc:pc机的可执行文件exe或者standalone部署的应用 必须
model body string 设备的模型 必须
man body string 设备生产厂商 必选
os body String 设备操作系统 必选
pkg body String 应用包名 必选
channel body String 渠道名 必选

BrowserSDK调用

const lovearth = require('../lib')
async function test_addToken() {
    const dua = await lovearth({
APP_KEY: "您的appkey",
APP_SECRET: "您的appsecret",
    })
    //--------------------------------------------------
    let api_name = "获取匿名令牌";
    let res = await dua.addToken()
    if(res.error == 0){
console.log(api_name+"成功 ");
    }else{
got_ugrp_id = res.result.id;
console.log(api_name+"失败 "+res.reason);
    }
    token = res.result.token;
    console.log(token); 

    api_name = "验证匿名令牌";
    res = await dua.getToken(token)
    if(res.error == 0){
console.log(api_name+"成功 ");
    }else{
console.log(api_name+"失败 "+res.reason);
    }
    console.log(res);

}

test_addToken();

返回结果示例

获取匿名令牌成功
eyJhbGciOiJSUzI1NiIsImtpZCI6ImI1MGIxZWZmZGMwMzVlMjg2OWI2YzQ1ZjMzYmRmNWQ3In0.eyJpYXQiOjE1NTE4NDMyMTYsIm5iZiI6MTU1MTg0MzIxNiwiZXhwIjoxNTUxODQ2ODE2LCJpc3MiOiJsb3ZlYXJ0aCIsImR1YSI6IlBQamdPcjdMIiwiZGlkIjoiR1BwdmFPVEIiLCJ1aWQiOiJhbm9ueW11cyIsImFpZCI6ImFIRVZZaEUxIiwiYXVkIjoiaHR0cDovL2FkbWluLnhkdWEuY29tIiwiaXAiOiIxNTkuMjI2LjQzLjYyIiwidWEiOiJheGlvcy8wLjE4LjAiLCJ1Z3JwIjoiWGRVYVhkdUEiLCJyb2xlIjoibm9uZSJ9.dt4X_Ah1_PfZHIrVvGejUshTxbmk8tWtPBBITOIfAP-ViAQztxSfTUSjIgTNVm--5LN-MEelzRSwCo8-C7HzocT19WSLSjM1mXdRhJMvwOdIjxll-fMyP9Mpbe5cpTqywcqxiKF5UFWfOz7yHP63OK4sy4KMgus2jZfEs3zSMOgRGLG-5uXNmqQoy1Mx83pvmlEtdua35Z659HiiDoYmYAsrBstGbomXUOJG_GUUdGLKfLYeaXmgt8O95XTTzUpy6JTzBZMsKy-pgERHZjBQwnxra0fqUdPMN7S_6yvvv_6h1ltpJCI5fgZDUBmTXF6F8dLRc1yzxdw72nqc-oXlUw
验证匿名令牌成功
{ 
    result:{ 
        verified: 1,
        data:{ 
            uid: 'anonymus',
            nbf: 1551843216,
            iss: 'lovearth',
            did: 'GPpvaOTB',
            ugrp: 'XdUaXduA',
            aid: 'aHEVYhE1',
            iat: 1551843216,
            ip: '159.226.43.62',
            exp: 1551846816,
            vtl: 3600,
            aud: 'http://admin.xdua.com',
            ua: 'axios/0.18.0',
            role: 'none',
            dua: 'PPjgOr7L' 
        } 
    },
    error: 0,
    reason: 'success' 
}

返回数据格式

成功返回

成功返回的token在SDK就会被保存到localstorage.

{
    "error": 0,
    "reason": "Success"
    "result": {"token":"从服务器返回的匿名令牌",}
}

失败返回

{
    "error": 1,
    "result": {},
    "reason": "失败的时候是具体原因"
}

多种设备如何获取这些设备信息.

安卓应用

设备序号。用来唯一标识一台设备。在不同类型的应用终端获取dsn的方式不一样。

设备序号(dsn):
import android.os.Build;
import android.provider.Settings;
public String getUuid() {
    return "android_id:"+Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);
}
设备模型(model):
import android.os.Build;
public String getModel() {
    return Build.MODEL;
}
应用包名(pkg):
public String getPackageName() {
    return context.getPackageName();
}
制造商名(man):
import android.os.Build;
public String getManufacturer() {
    return Build.MANUFACTURER;
}
操作系统(os):


应用版本(apv):


应用包名(pkg):
public String getPackageName() {
    return context.getPackageName();
}
渠道名(channel):

要获取android应用发布的市场名



浏览器应用(browser)
设备序号(dsn):
dsn = ""
设备模型(model):

参考:https://gitee.com/lovearthhome/www.xdua.org/blob/master/public/static/js/utiltool/detect/detect.js

应用包名(pkg):

在测试阶段,可以自己设置pkg

浏览器应用的包名就是网站的域名。如www.baidu.com便是百度应用的包名。
用 Javascript 可以单独获取当前域名、下面分别介绍。
一、js获取当前域名有2种方法
1、方法一
var domain = document.domain;
2、方法二
var domain = window.location.host;
3、注意问题
由于获取到的当前域名不包括 http://
IOS应用
Python应用
python获取MAC
import uuid
def get_mac():
    #0894ef146237 
    mac=uuid.UUID(int = uuid.getnode()).hex[-12:] 
    #08:94:ef:14:62:37
    mac= ":".join([mac[e:e+2] for e in range(0,11,2)])
    #mac:08:94:ef:14:62:37
    mac="mac:"+mac
    return mac

results matching ""

    No results matching ""