更新时间:2024-09-06 03:14:17下载pdf
智能生活 App SDK 提供了手机号码和密码的注册和登录能力。
为了加强用户信息的数据安全,涂鸦优化了验证码发送流程,并添加了账号限制。只有验证码服务可用的地区,才可以发送验证码。
如果您想为 App 启用手机号码验证服务,那您需要开通和配置 手机号码短信验证服务。该服务让您的 App 用户可以通过手机号码直接注册账号或绑定已有的 App 账号,并可以直接通过手机号码完成登录 App、找回密码等操作。详细操作说明,请参考 开通和配置手机号码短信验证服务。
- (void)getWhiteListWhoCanSendMobileCodeSuccess:(TYSuccessString)success
failure:(TYFailureError)failure;
参数说明
参数 | 说明 |
---|---|
success | 接口发送成功回调 |
failure | 接口发送失败回调,error 表示失败原因 |
Objc:
[[TuyaSmartUser sharedInstance] getWhiteListWhoCanSendMobileCodeSuccess:^(NSString *regions) {
} failure:^(NSError *error) {
}];
Swift:
TuyaSmartUser.sharedInstance().getWhiteListWhoCanSendMobileCodeSuccess({ regions in
}, failure: { error in
})
您需要确保您能使用本接口。详情请调用 getWhiteListWhoCanSendMobileCodeSuccess
查看使用权限。
接口说明
发送验证码,用于手机号码的验证码登录、注册、密码重置等。
- (void)sendVerifyCodeWithUserName:(NSString *)userName
region:(NSString *)region
countryCode:(NSString *)countryCode
type:(NSInteger)type
success:(TYSuccessHandler)success
failure:(TYFailureError)failure;
参数说明
参数 | 说明 |
---|---|
userName | 手机号码 |
region | 用户注册地区,可以通过 [TuyaSmartUser regionListWithCountryCode:success:failure:] 或者 [TuyaSmartUser getDefaultRegionWithCountryCode:] 获取 |
countryCode | 国家码,例如 86 |
type | 发送验证码类型。取值:
|
success | 接口发送成功回调 |
failure | 接口发送失败回调,error 表示失败原因 |
示例代码
Objc:
[[TuyaSmartUser sharedInstance] sendVerifyCodeWithUserName:@"yourUsename"
region:region
countryCode:@"yourCountryCode"
type:1
success:^{
NSLog(@"sendVerifyCode success");
} failure:^(NSError *error) {
NSLog(@"sendVerifyCode failure: %@", error);
}];
Swift:
TuyaSmartUser.sharedInstance().sendVerifyCode(withUserName: "yourUsename", region: region, countryCode: "yourCountryCode", type: 1, success: {
print("sendVerifyCode success")
}, failure: { error in
if let error = error {
print("sendVerifyCode failure: \(error)")
}
})
接口说明
手机号码账号注册、登录、重设密码时验证码的校验。
- (void)checkCodeWithUserName:(NSString *)userName
region:(NSString *_Nullable)region
countryCode:(NSString *)countryCode
code:(NSString *)code
type:(NSInteger)type
success:(TYSuccessBOOL)success
failure:(TYFailureError)failure;
参数说明
参数 | 说明 |
---|---|
userName | 手机号或邮箱 |
region | 区域,默认填 nil |
countryCode | 国家码,例如 86 |
code | 经过验证码发送接口,收到的验证码 |
type | 发送验证码类型。取值:
|
success | 接口发送成功回调 |
failure | 接口发送失败回调,error 表示失败原因 |
示例代码
Objc:
[[TuyaSmartUser sharedInstance] checkCodeWithUserName:@"email_or_phone_number" region:@"region" countryCode:@"your_country_code" code:@"verify_code" type:1 success:^(BOOL result) {
if (result) {
NSLog(@"valid code!");
} else {
NSLog(@"invalid code!");
}
} failure:^(NSError *error) {
NSLog(@"check code failure: %@", error);
}];
Swift:
TuyaSmartUser.sharedInstance()?.checkCode(withUserName: "email_or_phone_number", region: "region", countryCode: "your_country_code", code: "verify_code", type: type, success: { (result) in
if result {
print("valid code!")
} else {
print("invalid code!")
}
}, failure: { (error) in
if let error = error {
print("check code failure: \(error)")
}
})
使用手机号码注册账号前,您需要先 获取验证码。
接口说明
- (void)registerByPhone:(NSString *)countryCode
phoneNumber:(NSString *)phoneNumber
password:(NSString *)password
code:(NSString *)code
success:(nullable TYSuccessHandler)success
failure:(nullable TYFailureError)failure;
参数说明
参数 | 说明 |
---|---|
countryCode | 国家码,例如 86 |
phoneNumber | 手机号码 |
password | 密码 |
code | 经过验证码发送接口,收到的验证码 |
success | 接口发送成功回调 |
failure | 接口发送失败回调,error 表示失败原因 |
示例代码
Objc:
[[TuyaSmartUser sharedInstance] registerByPhone:@"your_country_code" phoneNumber:@"your_phone_number" password:@"your_password" code:@"verify_code" success:^{
NSLog(@"register success");
} failure:^(NSError *error) {
NSLog(@"register failure: %@", error);
}];
Swift:
TuyaSmartUser.sharedInstance()?.register(byPhone: "your_country_code", phoneNumber: "your_phone_number", password: "your_password", code: "verify_code", success: {
print("register success")
}, failure: { (error) in
if let e = error {
print("register failure: \(e)")
}
})
接口说明
- (void)loginByPhone:(NSString *)countryCode
phoneNumber:(NSString *)phoneNumber
password:(NSString *)password
success:(nullable TYSuccessHandler)success
failure:(nullable TYFailureError)failure;
参数说明
参数 | 说明 |
---|---|
countryCode | 国家码,例如 86 |
phoneNumber | 手机号码 |
password | 密码 |
success | 接口发送成功回调 |
failure | 接口发送失败回调,error 表示失败原因 |
示例代码
Objc:
[[TuyaSmartUser sharedInstance] loginByPhone:@"your_country_code" phoneNumber:@"your_phone_number" password:@"your_password" success:^{
NSLog(@"login success");
} failure:^(NSError *error) {
NSLog(@"login failure: %@", error);
}];
Swift:
TuyaSmartUser.sharedInstance()?.login(byPhone: "your_country_code", phoneNumber: "your_phone_number", password: "your_password", success: {
print("login success")
}, failure: { (error) in
if let e = error {
print("login failure: \(e)")
}
})
您需要先调用 验证码发送接口,发送验证码,再将收到的验证码填入对应的参数中。
接口说明
- (void)loginWithMobile:(NSString *)mobile
countryCode:(NSString *)countryCode
code:(NSString *)code
success:(TYSuccessHandler)success
failure:(TYFailureError)failure;
参数说明
参数 | 说明 |
---|---|
mobile | 手机号码 |
countryCode | 国家码,例如 86 |
code | 经过验证码发送接口,收到的验证码 |
success | 接口发送成功回调 |
failure | 接口发送失败回调,error 表示失败原因 |
示例代码
Objc:
[[TuyaSmartUser sharedInstance] loginWithMobile:@"your_phone_number" countryCode:@"your_country_code" code:@"verify_code" success:^{
NSLog(@"login success");
} failure:^(NSError *error) {
NSLog(@"login failure: %@", error);
}];
Swift:
TuyaSmartUser.sharedInstance()?.login(withMobile: "your_phone_number", countryCode: "your_country_code", code: "verify_code", success: {
print("login success")
}, failure: { (error) in
if let e = error {
print("login failure: \(e)")
}
})
重置密码前,您需要先 获取验证码。
接口说明
- (void)resetPasswordByPhone:(NSString *)countryCode
phoneNumber:(NSString *)phoneNumber
newPassword:(NSString *)newPassword
code:(NSString *)code
success:(nullable TYSuccessHandler)success
failure:(nullable TYFailureError)failure;
参数说明
参数 | 说明 |
---|---|
countryCode | 国家码,例如 86 |
phoneNumber | 手机号码 |
newPassword | 新密码 |
code | 经过验证码发送接口,收到的验证码 |
success | 接口发送成功回调 |
failure | 接口发送失败回调,error 表示失败原因 |
示例代码
Objc:
- (void)resetPasswordByPhone {
[TuyaSmartUser sharedInstance] resetPasswordByPhone:@"your_country_code" phoneNumber:@"your_phone_number" newPassword:@"your_password" code:@"verify_code" success:^{
NSLog(@"resetPasswordByPhone success");
} failure:^(NSError *error) {
NSLog(@"resetPasswordByPhone failure: %@", error);
}];
}
Swift:
func resetPasswordByPhone() {
TuyaSmartUser.sharedInstance()?.resetPassword(byPhone: "your_country_code", phoneNumber: "your_phone_number", newPassword: "your_password", code: "verify_code", success: {
print("resetPasswordByPhone success")
}, failure: { (error) in
if let e = error {
print("resetPasswordByPhone failure: \(e)")
}
})
}
绑定邮箱,包括获取绑定验证码接口和绑定邮箱接口。
接口说明
- (void)sendBindingVerificationCodeWithEmail:(NSString *)email
countryCode:(NSString *)countryCode
success:(nullable TYSuccessHandler)success
failure:(nullable TYFailureError)failure;
参数说明
参数 | 说明 |
---|---|
countryCode | 手机号码所在的国家区号,例如 86 表示中国大陆地区 |
邮箱地址 | |
success | 接口发送成功回调 |
failure | 接口发送失败回调,error 表示失败原因 |
接口说明
- (void)bindEmail:(NSString *)email
withCountryCode:(NSString *)countryCode
code:(NSString *)code
sId:(NSString *)sId
success:(nullable TYSuccessHandler)success
failure:(nullable TYFailureError)failure;
参数说明
参数 | 说明 |
---|---|
countryCode | 手机号码所在的国家区号,例如 86 表示中国大陆地区 |
邮箱地址 | |
code | 验证码 |
sId | 用户登录的会话(session)ID,您可以在 user 对象中获取 sessionID |
success | 接口发送成功回调 |
failure | 接口发送失败回调,error 表示失败原因 |
示例代码
ObjC:
//获取绑定验证码
[[TuyaSmartUser sharedInstance] sendBindingVerificationCodeWithEmail:@"yourEmail" countryCode:@"yourCountryCode" success:^{
} failure:^(NSError *error) {
}];
//绑定邮箱
[[TuyaSmartUser sharedInstance] bindEmail:@"yourEmail" withCountryCode:@"yourCountryCode" code:@"yourVerifyCode" sId:@"yourSId" success:^{
} failure:^(NSError *error) {
}];
Swift:
TuyaSmartUser.sharedInstance().sendBindingVerificationCode(withEmail: "yourEmail", countryCode: "yourCountryCode") {
print("login success")
} failure: { error in
if let e = error {
print("login failure: \(e)")
}
}
TuyaSmartUser.sharedInstance().bindEmail("yourEmail", withCountryCode: "yourCountryCode", code: "yourVerifyCode", sId: "sId") {
print("login success")
} failure: { error in
if let e = error {
print("login failure: \(e)")
}
}
重置密码后,如果有多个 App 都同时登录了这个账号,那么其他设备上的 App 会触发 Session 失效的回调。您需要自行实现回调后的动作,如跳转到登录页面等。详情请参考 Session 过期的处理。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈