二维码授权登录

更新时间:2023-04-17 09:04:19下载pdf

二维码授权登录功能适用于 App 扫码授权另一台设备登录相同账号。设备可以是中控设备、TV、平板设备等。

流程说明

以下流程 中控设备 的 App,需要添加白名单才能使用,否则会报错。例如,如果您使用 智能生活 App 来扫描后台创建的 SDK 的二维码那么会报错,Session 失效。

二维码授权登录完整流程如下:

二维码授权登录

图中标注的关键步骤解释(本文中提供了⑤接口):

图序号 步骤目的 说明 接口
获取 Token 设备请求接口获取授权流程使用的 Token -
生成二维码 将获取到的 Token,使用特定格式生成二维码。
  • 格式:tuyaSmart--qrLogin?token=xxxxxxx
  • 示例:tuyaSmart--qrLogin?token=AZc72de000-ec00-4000-9e51-b610fc300000
  • 使用:生成二维码后,将上面字符串生成二维码展示在设备的屏幕中。
    二维码授权登录
-
获取登录状态 向服务端轮询获取是否授权成功,如果授权成功后将返回用户信息,跳转进入应用主页,进入后续操作。 QRCodeLogin
扫描二维码 App 扫描设备上的二维码,将二维码中 Token 解析出来,进行授权操作。 -
授权登录 将解析出的二维码发送到云端,完成授权动作。 loginByQRcode

解析二维码信息

- (void)userInfo:(NSDictionary *)codeInfo success:(nullable ThingSuccessID)success failure:(nullable ThingFailureError)failure;

参数说明

参数 说明
codeInfo 扫描获取二维码信息
success 成功回调
failure 失败回调

示例代码

NSDictionary *codeInfo = @{"token": @"****", @"其他信息": @""}; // 二维码信息

[[ThingSmartUser sharedInstance] userInfo:codeInfo success:success failure:failure];

授权登录

- (void)loginByQRcode:(NSDictionary *)codeInfo success:(nullable ThingSuccessID)success failure:(nullable ThingFailureError)failure;

参数说明

参数 说明
codeInfo 二维码信息
success 成功回调
failure 失败回调

示例代码

NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithDictionary:codeInfo];
[dic setValue:[NSString stringWithFormat:@"当前家庭 ID"] forKey:@"homeId"];
[[ThingSmartUser sharedInstance] loginByQRcode:dic success:success failure:failure];