使用邮箱地址注册和登录安卓用户账号

更新时间:2023-05-31 10:18:37下载pdf

智能生活 App SDK 提供邮箱地址验证码登录能力。

发送验证码

接口说明

ThingHomeSdk.getUserInstance().sendVerifyCodeWithUserName(String userName, String region, String countryCode, int type, IResultCallback callback);

参数说明

参数 说明
userName 邮箱账号
region 区域,默认填写 "" 即可
countryCode 国家码,例如 86
type 验证码类型。取值:
  • 1:使用邮箱地址注册账号时,发送验证码
  • 2:使用邮箱地址登录账号时,发送验证码
  • 3:重置邮箱地址注册的账号的密码时,发送验证码
callback 回调

校验填入的验证码

接口说明

用于注册、登录、重设密码邮箱地址账号时,校验验证码。

ThingHomeSdk.getUserInstance().checkCodeWithUserName(String userName, String region, String countryCode, String code, int type, IResultCallback callback)

参数说明

参数 说明
userName 用户名
region 区域,默认填写 "" 即可
countryCode 国家码,例如 86
code 验证码
type 验证码类型。取值:
  • 1:使用邮箱地址注册账号时,校验验证码
  • 2:使用邮箱地址登录账号时,校验验证码
  • 3:重置邮箱地址注册的账号的密码时,校验验证码
callback 回调

使用邮箱地址注册账号

使用邮箱地址注册账号,您需要先 获取验证码

接口说明

ThingHomeSdk.getUserInstance().registerAccountWithEmail(final String countryCode, final String email, final String passwd, final String code, final IRegisterCallback callback);

参数说明

参数 说明
countryCode 国家码,例如 86。请注意,账号一旦注册到一个国家或地区,数据无法迁移到其他国家或地区。
email 邮箱地址
passwd 密码
code 验证码
callback 回调

代码范例

//注册获取邮箱验证码
ThingHomeSdk.getUserInstance().sendVerifyCodeWithUserName("123456@123.com", "", "86", 1, new IResultCallback() {
            @Override
            public void onError(String code, String error) {
                Toast.makeText(mContext, "code: " + code + "error:" + error, Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onSuccess() {
                Toast.makeText(mContext, "获取验证码成功", Toast.LENGTH_SHORT).show();
            }
        });

//邮箱密码注册
ThingHomeSdk.getUserInstance().registerAccountWithEmail("86", "123456@123.com","123456","5723", new IRegisterCallback() {
    @Override
    public void onSuccess(User user) {
        Toast.makeText(mContext, "注册成功", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onError(String code, String error) {
        Toast.makeText(mContext, "code: " + code + "error:" + error, Toast.LENGTH_SHORT).show();
    }
});

使用邮箱地址和密码登录账号

接口说明

ThingHomeSdk.getUserInstance().loginWithEmail(String countryCode, String email, String passwd, final ILoginCallback callback);
参数 说明
countryCode 国家码,例如 86
email 邮箱地址
passwd 登录密码
callback 回调

代码范例

//邮箱密码登录
ThingHomeSdk.getUserInstance().loginWithEmail("86", "123456@123.com", "123123", new ILoginCallback() {
    @Override
    public void onSuccess(User user) {
        Toast.makeText(mContext, "登录成功,用户名:").show();
    }

    @Override
    public void onError(String code, String error) {
        Toast.makeText(mContext, "code: " + code + "error:" + error, Toast.LENGTH_SHORT).show();
    }
});

使用邮箱地址和验证码登录账号

使用邮箱地址和验证码登录账号前,您需要先 获取验证码

接口说明

ThingHomeSdk.getUserInstance().loginWithEmailCode(String countryCode, String email, String code, ILoginCallback callback);

参数说明

参数 说明
countryCode 国家码,例如 86
email 邮箱地址
code 验证码
callback 登录回调接口

示例代码

ThingHomeSdk.getUserInstance().sendVerifyCodeWithUserName("123456@123.com", "", "86", 2, new IResultCallback() {
                @Override
                public void onError(String s, String s1) {
                    	Toast.makeText(mContext, "code: " + code + "error:" + error, Toast.LENGTH_SHORT).show();
                }

                @Override
                public void onSuccess() {
                    	Toast.makeText(mContext, "获取验证码成功", Toast.LENGTH_SHORT).show();
                }
            });


 ThingHomeSdk.getUserInstance().loginWithEmailCode("86", "123456@123.com", "5723", new ILoginCallback() {
                @Override
                public void onError(String code, String error) {
                    	Toast.makeText(mContext, error, Toast.LENGTH_SHORT).show();
                }

                @Override
                public void onSuccess(User user) {
                    	Toast.makeText(mContext, "登录成功,用户名:" +ThingHomeSdk.getUserInstance().getUser().getUsername(), Toast.LENGTH_SHORT).show();

                }
            });

重置邮箱地址账户的密码

重置邮箱地址账户的密码前,您需要先 获取验证码

重置密码后,如果有多个 App 都同时登录了这个账号,那么其他设备上的 App 会触发 Session 失效的回调。您需要自行实现回调后的动作,如跳转到登录页面等。详情请参考 Session 过期的处理

接口说明

ThingHomeSdk.getUserInstance().resetEmailPassword(String countryCode, final String email, final String emailCode, final String passwd, final IResetPasswordCallback callback);

参数说明

参数 说明
countryCode 国家码,例如 86
email 邮箱地址
emailCode 验证码
passwd 新密码
callback 回调

示例代码

//获取邮箱验证码
ThingHomeSdk.getUserInstance().sendVerifyCodeWithUserName("123456@123.com", "", "86", 3, new IResultCallback() {
            @Override
            public void onError(String code, String error) {
                Toast.makeText(mContext, "code: " + code + "error:" + error, Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onSuccess() {
                Toast.makeText(mContext, "获取验证码成功", Toast.LENGTH_SHORT).show();
            }
        });
//重置密码
ThingHomeSdk.getUserInstance().resetEmailPassword("86", "123456@123.com", "123123""a12345", new IResetPasswordCallback() {
    @Override
    public void onSuccess() {
        Toast.makeText(mContext, "找回密码成功", Toast.LENGTH_SHORT).show();
    }
    @Override
    public void onError(String code, String error) {
        Toast.makeText(mContext, "code: " + code + "error:" + error, Toast.LENGTH_SHORT).show();
    }
});

为账号绑定手机号

绑定手机号,包括获取绑定验证码接口和绑定手机号接口。

获取绑定验证码

接口说明

ThingHomeSdk.getUserInstance().sendBindVerifyCode(String countryCode, String phoneNumber, IResultCallback callback);

参数说明

参数 说明
countryCode 手机号码所在的国家区号,例如 86 表示中国大陆地区
phoneNumber 手机号码
callback 回调

绑定手机号码

接口说明

ThingHomeSdk.getUserInstance().bindMobile(String countryCode, String phoneNumber, String code, IResultCallback callback);

参数说明

参数 说明
countryCode 手机号码所在的国家区号,例如 86 表示中国大陆地区
phoneNumber 手机号码
code 验证码
callback 回调

示例代码

//获取绑定验证码
ThingHomeSdk.getUserInstance().sendBindVerifyCode("86", "12345678901", new IResultCallback() {
	@Override
    public void onError(String code, String error) {
    	// TODO
    }

    @Override
    public void onSuccess() {
		// TODO
    }
});
//绑定手机号
ThingHomeSdk.getUserInstance().bindMobile("86", "12345678901", "123456", new IResultCallback() {
	@Override
	public void onError(String code, String error) {
		// TODO
	}

	@Override
	public void onSuccess() {
		// TODO
	}
});