项目授权模式
项目授权模式主要适用于B端行业项目,私有化服务,如公寓酒店、办公楼宇、学校、会议室等项目数字化改造或智能化升级。
- 项目:指通过物联行业平台创建的项目,用户可以通过提供的入网实施工具进行设备相关入网绑定到该项目。
 
授权流程时序图如下所示。

 
步骤1 获取授权验证码
- 注册并登录Aqara物联行业平台;
 
- 创建项目,选择需要授权的项目-进入拓展服务页面;
 
- 在获取开放平台权限页面,获取授权验证码authCode,授权码有效期为10分钟,请在有效期内生成访问令牌accessToken。
 
步骤2 通过授权验证码authCode获取访问令牌accessToken
- 接口intent:config.auth.getToken
 
- 接口描述:在授权码Code过期前,通过此接口将授权码换取访问令牌accessToken,访问令牌的默认有效期为7天,可以通过“config.auth.getAuthCode”接口自定义有效期时长。
 
- 请求参数:
 
| 名称 | 
类型 | 
是否必须 | 
描述 | 
| authCode | 
String | 
是 | 
上一步请求获取的authCode | 
| accountType | 
Integer | 
是 | 
账号类型,1-项目 | 
{
    "intent": "config.auth.getToken",
    "data": {
        "authCode": "xxxx",
        "accountType": 1
    }
}
| 名称 | 
类型 | 
描述 | 
| expiresIn | 
String | 
accessToken过期时间,单位秒 | 
| openId | 
String | 
用户唯一id | 
| accessToken | 
String | 
访问令牌 | 
| refreshToken | 
String | 
访问刷新令牌,refreshToken时长默认为accessToken有期限+30天 | 
{
    "code": 0,
    "requestId": "",
    "message": "Success",
    "msgDetails": null,
    "result": {
        "expiresIn": "86400",
        "openId": "593652793976837702248177061889",
        "accessToken": "b8001e1893f5e4316a4f8c3b47df3720",
        "refreshToken": "ddd9dc7e9ec7b772e852121ed2fe75aa"
    }
}
步骤3 通过refreshToken刷新访问令牌,获取新的accessToken和refreshToken
- 接口intent:config.auth.refreshToken
 
- 接口描述:在accessToken过期前,通过此接口用refreshToken刷新访问令牌accessToken,refreshToken时长默认为accessToken有期限+30天。
 
- 请求参数:
 
| 名称 | 
类型 | 
是否必须 | 
描述 | 
| refreshToken | 
String | 
是 | 
访问刷新令牌 | 
{
    "intent": "config.auth.refreshToken",
    "data": {
        "refreshToken": "xxxx"
    }
}
| 名称 | 
类型 | 
描述 | 
| expiresIn | 
String | 
accessToken过期时间,单位秒 | 
| openId | 
String | 
用户唯一id | 
| accessToken | 
String | 
新的访问令牌 | 
| refreshToken | 
String | 
新的访问刷新令牌 | 
{
    "code": 0,
    "requestId": "",
    "message": "Success",
    "msgDetails": null,
    "result": {
        "expiresIn": "86400",
        "openId": "593652793976837702248177061889",
        "accessToken": "b8001e1893f5e4316a4f8c3b47df3720",
        "refreshToken": "ddd9dc7e9ec7b772e852121ed2fe75aa"
    }
}