phoneLogin static method

Future<String> phoneLogin(
  1. String? captcha,
  2. String proof,
  3. String password,
  4. String registrationId,
  5. String clientType,
)

手机号登录 captcha 验证码 proof 手机号 password 密码 registrationId App在登录时传递过来的极光推送的registrationId(这个表示的是推送id) clientType 客户端类型,取值android 或 ios

Implementation

static Future<String> phoneLogin(String? captcha, String proof, String password,
    String registrationId,String clientType) async {
  if(captcha == null || captcha.isEmpty) {
    captcha = await getTextCaptcha();
  }
  String messageId = HttpUtils.getUUID();
  int timestamp = DateTime.now().millisecondsSinceEpoch;
  String sign = CipherUtil.generateSignature(timestamp, messageId);
  Cm005BaseLoginRequest request = Cm005BaseLoginRequest(
      messageId: messageId,
      timestamp: timestamp,
      sign: sign,
      language: HttpManager().isAbroad ? 'en-US' : 'zh-CN',
      signVersion: '1',
      payLoadVersion: '1',
      payload: Payload(
        tempToken: SpUtil().getString(SpUtil.SP_KEY_IMAGE_CAPTCHA_TOKEN),
        captcha: captcha,
        proof: proof,
        password: password,
        appName: 'Maxims',
        registrationId: registrationId,
        clientType: clientType,
      ));
  Map<String,dynamic> result = await HttpUtils.post(true, Api.PATH_PHONE_LOGIN,
      data: request.toJson());
  if(result['code'] == 200 && result['result']['accessToken'] != null) {
    SpUtil().setString(SpUtil.SP_KEY_ACCESS_TOKEN, result['result']['accessToken']);
  }
  if(result['code'] == 200 && result['result']['refreshToken'] != null) {
    SpUtil().setString(SpUtil.SP_KEY_REFRESH_TOKEN, result['result']['refreshToken']);
  }
  result = {
    'success': result['success'],
    'code': result['code'],
    'message': result['message'],
    'result': {
      'baseDdata': result['code'] == 200 ? result['result']['baseDdata'] : null
    },
  };
  return formatResponse(result);
}