mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
mod: 继续补充登录风控分支(尚未完成)
This commit is contained in:
@@ -522,6 +522,14 @@ class Api {
|
||||
static const String safeCenterSmsCode =
|
||||
'${HttpString.passBaseUrl}/x/safecenter/common/sms/send';
|
||||
|
||||
/// type str loginTelCheck
|
||||
/// code int 验证码内容
|
||||
/// tmp_code str 验证标记代码 来自数据处理中的解析出的参数tmp_token
|
||||
/// request_id str 验证请求标记 来自数据处理中的解析出的参数requestId
|
||||
/// captcha_key str 验证秘钥 来自申请验证码的captcha_key(data->captcha_key)
|
||||
static const String safeCenterSmsVerify =
|
||||
'${HttpString.passBaseUrl}/x/safecenter/login/tel/verify';
|
||||
|
||||
/// 密码加密密钥
|
||||
/// disable_rcmd
|
||||
/// local_id
|
||||
|
||||
@@ -415,4 +415,32 @@ class LoginHttp {
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
static Future safeCenterSmsVerify(
|
||||
{String? type,
|
||||
required String code,
|
||||
required String tmpCode,
|
||||
required String requestId,
|
||||
required String source,
|
||||
required String captchaKey}) async {
|
||||
var res = await Request().post(Api.safeCenterSmsVerify, data: {
|
||||
'type': type ?? 'loginTelCheck',
|
||||
'code': code,
|
||||
'tmp_code': tmpCode,
|
||||
'request_id': requestId,
|
||||
'source': source,
|
||||
'captcha_key': captchaKey,
|
||||
});
|
||||
print(res);
|
||||
if (res.data['code'] == 0) {
|
||||
return {'status': true, 'data': res.data['data']};
|
||||
} else {
|
||||
return {
|
||||
'status': false,
|
||||
'code': res.data['code'],
|
||||
'msg': res.data['message'],
|
||||
'data': res.data['data']
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -316,14 +316,27 @@ class LoginPageController extends GetxController
|
||||
return;
|
||||
}
|
||||
Map<String, String> accountInfo = {
|
||||
"telVerify": safeCenterRes['data']['account_info']!['tel_verify']!,
|
||||
"hide_tel": safeCenterRes['data']['account_info']!["hide_tel"]!,
|
||||
"telVerify": safeCenterRes['data']['account_info']!['tel_verify'],
|
||||
"bindTel": safeCenterRes['data']['account_info']!["bind_tel"],
|
||||
"mailVerify": safeCenterRes['data']['account_info']!['mailVerify'],
|
||||
"bindMail": safeCenterRes['data']['account_info']!["bind_mail"],
|
||||
};
|
||||
SmartDialog.showNotify(
|
||||
msg: "将给你的手机号:${accountInfo['hide_tel']}发送短信验证码",
|
||||
notifyType: NotifyType.alert,
|
||||
alignment: Alignment.topCenter);
|
||||
TextEditingController _textFieldController = TextEditingController();
|
||||
String captchaKey = '';
|
||||
Get.dialog(AlertDialog(
|
||||
title: const Text("本次登录需要验证您的手机号"),
|
||||
content: Column(
|
||||
children:[
|
||||
Text(accountInfo['bindTel'] ?? '未能获取手机号'),
|
||||
TextField(
|
||||
controller: _textFieldController,
|
||||
decoration: const InputDecoration(hintText: "请输入短信验证码"),
|
||||
),]),
|
||||
|
||||
actions: <Widget>[
|
||||
TextButton(
|
||||
child: const Text("发送验证码 "),
|
||||
onPressed: () async {
|
||||
var preCaptureRes = await LoginHttp.preCapture();
|
||||
if (!preCaptureRes['status']) {
|
||||
SmartDialog.showToast("获取验证码失败,请尝试其它登录方式\n"
|
||||
@@ -334,14 +347,54 @@ class LoginPageController extends GetxController
|
||||
String geeChallenge = preCaptureRes['data']['gee_challenge'];
|
||||
captchaData.token = preCaptureRes['data']['recaptcha_token']!;
|
||||
|
||||
getCaptcha(geeGt, geeChallenge, () {
|
||||
LoginHttp.safeCenterSmsCode(
|
||||
getCaptcha(geeGt, geeChallenge, () async {
|
||||
var safeCenterSendSmsCodeRes = await LoginHttp.safeCenterSmsCode(
|
||||
tmpCode: currentUri.queryParameters['tmp_token']!,
|
||||
geeChallenge: geeChallenge,
|
||||
geeSeccode: captchaData.seccode!,
|
||||
geeValidate: captchaData.validate!,
|
||||
recaptchaToken: captchaData.token!);
|
||||
if (!safeCenterSendSmsCodeRes['status']) {
|
||||
SmartDialog.showToast("发送短信验证码失败,请尝试其它登录方式\n"
|
||||
"(${safeCenterSendSmsCodeRes['code']}) ${safeCenterSendSmsCodeRes['msg']}");
|
||||
return;
|
||||
}
|
||||
SmartDialog.showToast("短信验证码已发送,请查收");
|
||||
captchaKey = safeCenterSendSmsCodeRes['data']['captcha_key'];
|
||||
});
|
||||
},
|
||||
),
|
||||
TextButton(
|
||||
onPressed: Get.back,
|
||||
child: const Text(" 取消"),
|
||||
),
|
||||
TextButton(
|
||||
onPressed: () async {
|
||||
String? code = _textFieldController.text;
|
||||
if (code.isEmpty) {
|
||||
SmartDialog.showToast("请输入短信验证码");
|
||||
return;
|
||||
}
|
||||
var safeCenterSmsVerifyRes = await LoginHttp.safeCenterSmsVerify(
|
||||
code: code,
|
||||
tmpCode: currentUri.queryParameters['tmp_token']!,
|
||||
requestId: currentUri.queryParameters['request_id']!,
|
||||
source: currentUri.queryParameters['source']!,
|
||||
captchaKey: captchaKey,
|
||||
);
|
||||
if (!safeCenterSmsVerifyRes['status']) {
|
||||
SmartDialog.showToast("验证短信验证码失败,请尝试其它登录方式\n"
|
||||
"(${safeCenterSmsVerifyRes['code']}) ${safeCenterSmsVerifyRes['msg']}");
|
||||
return;
|
||||
}
|
||||
SmartDialog.showToast("验证成功,正在登录");
|
||||
// loginByPassword();
|
||||
},
|
||||
child: const Text("确认"),
|
||||
),
|
||||
],
|
||||
));
|
||||
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user