Changeset 2557559
- Timestamp:
- 07/02/2021 08:36:13 AM (5 years ago)
- Location:
- vaptcha-sms/trunk
- Files:
-
- 4 edited
-
VaptchaSmsPlugin.php (modified) (12 diffs)
-
js/init-vaptcha.js (modified) (1 diff)
-
js/sms.js (modified) (9 diffs)
-
lib/VaptchaSms.class.php (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
vaptcha-sms/trunk/VaptchaSmsPlugin.php
r2513195 r2557559 106 106 <span id="hidden-vaptcha-vid" data-vaptcha-vid="$vid"></span> 107 107 <span id="hidden-vaptcha-smsid" data-vaptcha-smsid="$smsid"></span> 108 <span id="hidden-vaptcha-smskey" data-vaptcha-smskey="$smskey"></span>109 108 <span id="hidden-vaptcha-modelid" data-vaptcha-modelid="$modelid"></span> 110 109 <span id="vaptcha-hidden-url" data-ajax-url="$ajaxUrl"></span> … … 387 386 function captcha_validate_register($errors) 388 387 { 389 // $smsid = get_option('vaptcha_options')['vaptcha_smsid'];390 // $smskey = get_option('vaptcha_options')['vaptcha_smskey'];391 // $phone = sanitize_text_field($_POST['user_phone']);392 // $vcode = sanitize_text_field($_POST['register_sms_code']);393 //394 // if (!$phone) {395 // $errors->add('captcha_wrong', "<strong>ERROR</strong>:" . __('请输入手机号。', 'vaptcha'));396 // } else {397 //398 // $args = array(399 // 'meta_key' => 'phone',400 // 'meta_value' => $phone,401 // );402 // $phoneFindUser = get_users($args);403 //404 // if (!!$phoneFindUser) {405 // $errors->add('captcha_wrong', "<strong>ERROR</strong>:" . __('该手机号已绑定其他用户。', 'vaptcha'));406 // } else {407 // $res = $this->vaptcha->validateSmsCode($smsid, $smskey, $phone, $vcode);408 // if ($res == 601) {409 // $errors->add('captcha_wrong', "<strong>ERROR</strong>:" . __('短信验证码错误。', 'vaptcha'));410 // }411 // }412 // }413 388 return $errors; 414 389 } … … 480 455 function exit_device() 481 456 { 482 483 457 $this->removeDevice(); 484 485 458 } 486 459 … … 552 525 $challenge = ''; 553 526 $token = sanitize_text_field($_POST['vaptcha_token']); 554 if (!$token || !$this->vaptcha->validate($challenge, $token)) { 527 $server = sanitize_text_field($_POST['vaptcha_server']); 528 if (!$token || !$this->vaptcha->validate($server,$challenge, $token)) { 555 529 $errors->add('captcha_wrong', __('人机验证未通过', 'vaptcha')); 556 530 } … … 562 536 $challenge = ''; 563 537 $token = sanitize_text_field($_POST['vaptcha_token']); 564 if (!$token || !$this->vaptcha->validate($challenge, $token)) { 538 $server = sanitize_text_field($_POST['vaptcha_server']); 539 if (!$token || !$this->vaptcha->validate($server,$challenge, $token)) { 565 540 return new WP_Error('captcha_wrong', __('人机验证未通过', 'vaptcha')); 566 541 } … … 588 563 wp_enqueue_script('vaptcha_sms_js'); 589 564 590 wp_register_script('vaptcha_v3_js', 'https://v .vaptcha.com/v3.js', array('jquery'), '1.1', true);565 wp_register_script('vaptcha_v3_js', 'https://v-na.vaptcha.com/v3.js', array('jquery'), '1.1', true); 591 566 wp_enqueue_script('vaptcha_v3_js'); 592 567 } … … 640 615 641 616 /** 642 * 获取smsid617 * 后台设置页自动获取smsid 643 618 */ 644 619 public function getSMSID() … … 660 635 $post_data = array( 661 636 'smsid' => sanitize_text_field($_POST['smsid']), 662 'smskey' => sanitize_text_field($_POST['smskey']),637 'smskey' => get_option('vaptcha_options')['vaptcha_smskey'], 663 638 'templateid' => sanitize_text_field($_POST['templateid']), 664 639 'phone' => sanitize_text_field($_POST['phone']), … … 692 667 $phone = sanitize_text_field($_GET['phone']); 693 668 $token = sanitize_text_field($_GET['token']); 669 $server = sanitize_text_field($_GET['server']); 670 //通过手机号查找用户 671 $args = array( 672 'meta_key' => 'phone', 673 'meta_value' => $phone, 674 ); 675 676 $phoneFindUser = get_users($args); 677 if (!empty($phoneFindUser)) { 678 $phoneFindUser = $phoneFindUser[0]; 679 } 680 //通过用户名和手机号都未找到用户 681 if (!($phoneFindUser instanceof WP_User)) { 682 wp_send_json_error(array('code' => 444, 'msg' => '该手机未绑定用户')); 683 } 684 if (!$token || !$this->vaptcha->validate($server,'', $token)) { 685 wp_send_json_error(array('code' => 444, 'msg' => '人机验证未通过')); 686 } 687 $url = 'https://auth.vaptcha.com/api/v1/device?id=' . $phone . '&token=' . $token . '&renewal=1'; 688 $response = wp_remote_get($url); 689 690 $data = json_decode($response['body']); 691 wp_send_json_success($data); 692 } 693 694 /** 695 * 添加登录设备 696 */ 697 public function addDevice() 698 { 699 $smsid = get_option('vaptcha_options')['vaptcha_smsid']; 700 $smskey = get_option('vaptcha_options')['vaptcha_smskey']; 701 $phone = sanitize_text_field($_POST['phone']); 702 $vcode = sanitize_text_field($_POST['code']); 703 $token = sanitize_text_field($_POST['token']); 704 // $server = sanitize_text_field($_POST['server']); 694 705 //通过手机号查找用户 695 706 $args = array( … … 703 714 //通过用户名和手机号都未找到用户 704 715 if (!($phoneFindUser instanceof WP_User)) { 705 wp_send_json_error(array('code' => 444, 'msg' => '该手机未绑定用户'));706 }707 if (!$token || !$this->vaptcha->validate('', $token)) {708 wp_send_json_error(array('code' => 444, 'msg' => '人机验证未通过'));709 }710 $url = 'https://auth.vaptcha.com/api/v1/device?id=' . $phone . '&token=' . $token . '&renewal=1';711 $response = wp_remote_get($url);712 $data = json_decode($response['body']);713 wp_send_json_success($data);714 }715 716 /**717 * 添加登录设备718 */719 public function addDevice()720 {721 $smsid = get_option('vaptcha_options')['vaptcha_smsid'];722 $smskey = get_option('vaptcha_options')['vaptcha_smskey'];723 $phone = sanitize_text_field($_POST['phone']);724 $vcode = sanitize_text_field($_POST['code']);725 $token = sanitize_text_field($_POST['token']);726 //通过手机号查找用户727 $args = array(728 'meta_key' => 'phone',729 'meta_value' => $phone,730 );731 $phoneFindUser = get_users($args);732 if (!empty($phoneFindUser)) {733 $phoneFindUser = $phoneFindUser[0];734 }735 //通过用户名和手机号都未找到用户736 if (!($phoneFindUser instanceof WP_User)) {737 716 wp_send_json_error(array('code' => 400, 'msg' => '该手机未绑定用户')); 738 717 } … … 742 721 wp_send_json_error(array('code' => $res, 'msg' => '短信验证未通过')); 743 722 } 744 if (!$token || !$this->vaptcha->validate('', $token)) {745 wp_send_json_error(array('code' => 400, 'msg' => '人机验证未通过'));746 }723 // if (!$token || !$this->vaptcha->validate($server, '', $token)) { 724 // wp_send_json_error(array('code' => 400, 'msg' => '人机验证未通过')); 725 // } 747 726 $data = array( 748 727 'id' => $phone, … … 776 755 $userid = $user->ID; 777 756 $phone = get_user_option($userid); 778 // return $phone;779 757 $data = array( 780 'id' => $phone,758 'id' => '13696463913', 781 759 ); 782 760 -
vaptcha-sms/trunk/js/init-vaptcha.js
r2511904 r2557559 6 6 script = document.createElement('script'); 7 7 protocol = 'https'; //options.https ? 'https' : 'http'; 8 script.src = protocol + '://v .vaptcha.com/v3.js';8 script.src = protocol + '://v-sea.vaptcha.com/v3.js'; 9 9 script.id = 'vaptcha_v_js'; 10 10 script.async = true -
vaptcha-sms/trunk/js/sms.js
r2513195 r2557559 59 59 var vid = document.getElementById('hidden-vaptcha-vid').getAttribute('data-vaptcha-vid') 60 60 var smsid = document.getElementById('hidden-vaptcha-smsid').getAttribute('data-vaptcha-smsid') 61 var smskey = document.getElementById('hidden-vaptcha-smskey').getAttribute('data-vaptcha-smskey')62 61 var modelid = document.getElementById('hidden-vaptcha-modelid').getAttribute('data-vaptcha-modelid') 63 62 console.log(type) … … 67 66 scene: 0, // 场景值 默认0 68 67 offline_server: '', //离线模式服务端地址,若尚未配置离线模式,请填写任意地址即可。 68 area: 'auto', 69 69 }).then(function (vaptchaObj) { 70 70 $('#get_sms_code').show(); … … 73 73 // 验证成功进行后续操作 74 74 if (operaticon === 'register') { 75 sendSmsCode(vaptchaObj.get Token(), 'register')75 sendSmsCode(vaptchaObj.getServerToken(), 'register') 76 76 } 77 77 if (operaticon === 'deviceLogin') { 78 deviceLogin(vaptchaObj.get Token())78 deviceLogin(vaptchaObj.getServerToken()) 79 79 } 80 80 if (operaticon === 'smsLogin') { 81 addDevice(vaptchaObj.get Token())81 addDevice(vaptchaObj.getServerToken()) 82 82 } 83 83 if (operaticon === 'getSmsCode') { 84 sendSmsCode(vaptchaObj.get Token(), 'login')84 sendSmsCode(vaptchaObj.getServerToken(), 'login') 85 85 } 86 86 vaptchaObj.reset() //重置验证码 … … 92 92 }) 93 93 94 var smsToken = ''; 94 95 //发送验证码 95 96 function sendSmsCode(token, key) { … … 101 102 action: 'send_smscode', 102 103 phone: $('#user_phone').val(), 103 token: token, 104 token: token.token, 105 server: token.server, 104 106 smsid: smsid, 105 smskey: smskey,106 107 countrycode: $('#country_code').val(), 107 108 templateid: modelid, … … 109 110 success: function (res) { 110 111 if (res.data === 200) { 112 smsToken = token.token 111 113 key === 'register' ? sendCountdown() : loginSendCountdown() 112 114 } else { … … 126 128 action: 'device_login', 127 129 phone: $('#user_phone').val(), 128 token: token, 130 token: token.token, 131 server: token.server 129 132 }, 130 133 success: function (res) { … … 238 241 token: token, 239 242 smsid: smsid, 240 smskey: smskey,241 243 code: $('#sms_code').val() 242 244 }, … … 341 343 }) 342 344 343 // 登录按钮345 //验证码 登录按钮 344 346 $('#sms_login_button').click(function () { 345 347 operaticon = 'smsLogin'; 346 obj.validate() 348 addDevice(smsToken) 349 // obj.validate() 347 350 }) 348 351 -
vaptcha-sms/trunk/lib/VaptchaSms.class.php
r2511904 r2557559 79 79 * @return void 80 80 */ 81 public function validate($ knock, $token, $sceneId = 0)81 public function validate($server,$knock, $token, $sceneId = 0) 82 82 { 83 83 $str = 'ffline-'; … … 85 85 return $this->downTimeValidate($token); 86 86 else 87 return $this->normalValidate($ knock, $token, $sceneId);87 return $this->normalValidate($server,$knock, $token, $sceneId); 88 88 } 89 89 … … 274 274 } 275 275 276 private function normalValidate($knock, $token, $sceneId) 277 { 276 private function normalValidate($server,$knock, $token, $sceneId) 277 { 278 // return false; 279 278 280 if (!$token) 279 281 return false; 280 282 $ip = $this->getClientIp(); 281 283 $query = "id=$this->vid&scene=$sceneId&secretkey=$this->key&token=$token&ip=$ip"; 282 $url = $ this->config['API_URL'].$this->config['VALIDATE_URL'].'?' . $query;284 $url = $server.'?' . $query; 283 285 $now = $this->getCurrentTime(); 284 286 $response = json_decode(self::postValidate($url, $query));
Note: See TracChangeset
for help on using the changeset viewer.