更新时间:2024-06-26 05:49:19下载pdf
二维码授权登录功能适用于 App 扫码授权另一台设备登录相同账号。设备可以是中控设备、TV、平板设备等。
以下流程 中控设备 的 App,需要添加白名单才能使用,否则会报错。例如,如果您使用 智能生活 App 来扫描后台创建的 SDK 的二维码那么会报错,Session 失效。
图中标注的关键步骤解释:
图序号 | 步骤目的 | 说明 | 接口 |
---|---|---|---|
① | 获取 Token | 设备请求接口获取授权流程使用的 Token | getQRCodeToken |
② | 生成二维码 | 将获取到的 Token,使用特定格式生成二维码。
|
- |
③ | 获取登录状态 | 向服务端轮询获取是否授权成功,如果授权成功后将返回用户信息,跳转进入应用主页,进入后续操作。注意: 轮询间隔时间不能低于2s/次。 | QRCodeLogin |
④ | 扫描二维码 | App 扫描设备上的二维码,将二维码中 Token 解析出来,进行授权操作。 | - |
⑤ | 授权登录 | 将解析出的二维码发送到云端,完成授权动作。 | QRcodeAuth |
void getQRCodeToken(String countryCode, IGetQRCodeTokenCallback callback);
参数说明
参数 | 说明 |
---|---|
countryCode | 国家或地区的区号,例如 86 |
callback | 回调 |
示例代码
ThingHomeSdk.getUserInstance().getQRCodeToken("86", new IGetQRCodeTokenCallback() {
@Override
public void onSuccess(String token) {
}
@Override
public void onError(String code, String error) {
}
});
void QRCodeLogin(String countryCode, String token, ILoginCallback callback);
参数说明
参数 | 说明 |
---|---|
countryCode | 国家或地区的区号,例如 86 |
token | 登录的 token |
callback | 回调 |
示例代码
ThingHomeSdk.getUserInstance().QRCodeLogin("86", "xxxx", new ILoginCallback() {
@Override
public void onSuccess(User user) {
if (user != null && !TextUtils.isEmpty(user.getSid())){
ThingHomeSdk.getUserInstance().loginSuccess(user);
//获取 homeId
Object homeId = user.getExtras().get("homeId");
gotoHomePage();
}
}
@Override
public void onError(String code, String error) {
}
});
该接口适用于中控设备。当 App 扫描中控设备上的二维码时,可授权登录。
接口说明
void QRcodeAuth(String countryCode, long homeId, String token, IBooleanCallback callback);
参数说明
参数 | 说明 |
---|---|
countryCode | 国家或地区的区号,例如 86 |
homeId | 家庭 ID,请参考 家庭管理 相关章节获取 |
token | 登录的 token |
callback | 回调 |
示例代码
ThingHomeSdk.getUserInstance().QRcodeAuth("86", mHomeId, getActivityToken(), new IBooleanCallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(String code, String error) {
}
});
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈