账号功能
更新时间:2026-04-03 11:20:37
账号和用户SDK提供了账号能力,包括注册、登录、登出等功能。建议在SDK初始化完成以后再调用账号功能接口,保证SDK初始化与登录时序性,否则会出现异常。
内置账号体系
内置账号为AIRTC平台提供的账号能力,包括验手机号注册、邮箱注册、验证码登录、自动登录、退出登录、发送验证码、重置密码、修改密码、注销。您在客户端集成后即可使用。
// 导入账号头文件
import 'package:airtc_engine/src/account/rtcx_open_account.dart';
/// 通过手机验号、邮件 注册
Future<RTCXFluAccountResult> registerAccount(RTCXFluRegisterReq req);
/// 发送验证码
Future<RTCXFluAccountResult> sendValidateCode(RTCXFluSendValidateCodeReq req);
/// 通过账号密码、手机验证码、OAuthCode授权码(AuthCode登录推荐使用authCodeLoginAccountWithReq:接口) 登录
Future<RTCXFluAccountResult> loginAccount(RTCXFluLoginReq req);
/// 退出登录
Future<RTCXFluAccountResult> logout();
/// 通过OAuthCode授权码 登录
Future<RTCXFluAccountResult> authCodeLoginAccount(RTCXFluAuthCodeLoginReq req);
/// 自动登录
Future<RTCXFluAccountResult> autoLogin();
/// 重置密码
Future<RTCXFluAccountResult> resetPassword(RTCXFluResetPwdReq req);
/// 修改密码
Future<RTCXFluAccountResult> modifyPassword(RTCXFluModifyPwdReq req);
/// 用户注销 手机或邮箱收到的验证码 必选
Future<RTCXFluAccountResult> logoff(String verifyCode);
/// 是否登录
Future<RTCXFluAccountResult> isLogin();
/// 获取个人信息
Future<RTCXFluUserProfileModel> userProfile();
/// 更新用户名
Future<RTCXFluAccountResult> updateUserNickname(String name);
/// 更新头像
Future<RTCXFluAccountResult> updateUserHeadImg(Uint8List bitmap);
调用示例如下:
账号密码登录
// 根据accountType传递的类型,确认登录的授权方式
final accountApi = RTCXFluAccountApi();
try {
final req = RTCXFluLoginReq(
accountType: 2,
account: "手机号",
country: "CN",
pwdType: 1,
password: "密码",
);
await accountApi.loginAccount(req);
setState(() {
_result = "登录成功";
});
} catch (e) {
Fluttertoast.showToast(msg: "登录失败" + e.toString());
}
自动登录
当调用登录接口完成登录以后,SDK会自动缓存登录用户信息,下次可以直接调用自动登录接口完成登录。
accountApi.autoLogin().then((RTCXFluAccountResult value) {
print("autoLogin:${value.result}");
}).catchError((err) {
print("autoLogin err:" + err.toString());
});
发送验证码
当调用发生验证码时,验证码可用以完成注册、重置密码。
final req = RTCXFluSendValidateCodeReq(account: phone, verifyCodeType: 3);
accountApi
.sendValidateCode(req)
.then((value) {
print("sendValidateCode result:${value.result}");
})
.catchError((err) {
print("sendValidateCode err:" + err.toString());
});
用户注册
final req = RTCXFluRegisterReq(
accountType: 2,
verifyCode: code,
account: phone,
country: "CN",
pwdType: 3,
password: password,
);
accountApi
.registerAccount(req)
.then((value) {
print("registerAccount result:${value.result}");
})
.catchError((err) {
print("registerAccount err:" + err.toString());
});
重置密码
final req = RTCXFluResetPwdReq(
verifyCode: code,
account: phone,
password: password,
);
accountApi
.resetPassword(req)
.then((value) {
print("resetPassword result:${value.result}");
})
.catchError((err) {
print("resetPassword err:" + err.toString());
});
修改密码
try {
final req = RTCXFluModifyPwdReq(
oldPassword: oldPassword,
updatedPassword: newPassword,
);
final result = await accountApi.modifyPassword(req);
if (result.result) {
print("修改成功");
} else {
print("修改失败");
}
} catch (e) {
print("修改失败: ${e.toString()}");
} finally {
print("finally");
}
获取个人信息
try {
final profile = await accountApi.userProfile();
} catch (e) {
print(" 获取个人信息 err:${e.toString()}");
} finally {
print("finally");
}
修改用户昵称
try {
final result = await accountApi.updateUserNickname(nickname);
if (result.result) {
print("昵称修改成功");
} else {
print("修改失败");
}
} catch (e) {
print("修改失败: ${e.toString()}");
} finally {
print("finally");
}
修改头像
Uint8List data = await getAssetAsUint8List(imagePath);
final result = await accountApi.updateUserHeadImg(data);
if (result.result) {
print("头像更换成功");
} else {
print("更换失败");
}
是否登录
final result = await accountApi.isLogin();
if (result.result) {
print("已登录");
} else {
print("未登录");
}
退出登录
final result = await accountApi.logout();
if (result.result) {
print("成功");
} else {
print("是失败");
}
自有账号体系
登录
通过 authCode 授权码登录。
try {
final authCodeLoginReq = RTCXFluAuthCodeLoginReq(authCode: "authCode");
final result = await accountApi.authCodeLoginAccount(authCodeLoginReq);
if (result.result) {
print("登录成功");
} else {
print("登录失败");
}
} catch (e) {
print("登录失败: ${e.toString()}");
} finally {
print("finally");
}