Plugin Directory

Changeset 2557559


Ignore:
Timestamp:
07/02/2021 08:36:13 AM (5 years ago)
Author:
vaptcha
Message:

部署新版vaptcha

Location:
vaptcha-sms/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • vaptcha-sms/trunk/VaptchaSmsPlugin.php

    r2513195 r2557559  
    106106        <span id="hidden-vaptcha-vid" data-vaptcha-vid="$vid"></span>
    107107        <span id="hidden-vaptcha-smsid" data-vaptcha-smsid="$smsid"></span>
    108         <span id="hidden-vaptcha-smskey" data-vaptcha-smskey="$smskey"></span>
    109108        <span id="hidden-vaptcha-modelid" data-vaptcha-modelid="$modelid"></span>
    110109        <span id="vaptcha-hidden-url" data-ajax-url="$ajaxUrl"></span>
     
    387386    function captcha_validate_register($errors)
    388387    {
    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 //        }
    413388        return $errors;
    414389    }
     
    480455    function exit_device()
    481456    {
    482 
    483457        $this->removeDevice();
    484 
    485458    }
    486459
     
    552525        $challenge = '';
    553526        $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)) {
    555529            $errors->add('captcha_wrong', __('人机验证未通过', 'vaptcha'));
    556530        }
     
    562536        $challenge = '';
    563537        $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)) {
    565540            return new WP_Error('captcha_wrong', __('人机验证未通过', 'vaptcha'));
    566541        }
     
    588563        wp_enqueue_script('vaptcha_sms_js');
    589564
    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);
    591566        wp_enqueue_script('vaptcha_v3_js');
    592567    }
     
    640615
    641616    /**
    642      * 获取smsid
     617     * 后台设置页自动获取smsid
    643618     */
    644619    public function getSMSID()
     
    660635        $post_data = array(
    661636            'smsid' => sanitize_text_field($_POST['smsid']),
    662             'smskey' => sanitize_text_field($_POST['smskey']),
     637            'smskey' => get_option('vaptcha_options')['vaptcha_smskey'],
    663638            'templateid' => sanitize_text_field($_POST['templateid']),
    664639            'phone' => sanitize_text_field($_POST['phone']),
     
    692667        $phone = sanitize_text_field($_GET['phone']);
    693668        $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']);
    694705        //通过手机号查找用户
    695706        $args = array(
     
    703714        //通过用户名和手机号都未找到用户
    704715        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)) {
    737716            wp_send_json_error(array('code' => 400, 'msg' => '该手机未绑定用户'));
    738717        }
     
    742721            wp_send_json_error(array('code' => $res, 'msg' => '短信验证未通过'));
    743722        }
    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//        }
    747726        $data = array(
    748727            'id' => $phone,
     
    776755        $userid = $user->ID;
    777756        $phone = get_user_option($userid);
    778 //        return $phone;
    779757        $data = array(
    780             'id' => $phone,
     758            'id' => '13696463913',
    781759        );
    782760
  • vaptcha-sms/trunk/js/init-vaptcha.js

    r2511904 r2557559  
    66            script = document.createElement('script');
    77            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';
    99            script.id = 'vaptcha_v_js';
    1010            script.async = true
  • vaptcha-sms/trunk/js/sms.js

    r2513195 r2557559  
    5959    var vid = document.getElementById('hidden-vaptcha-vid').getAttribute('data-vaptcha-vid')
    6060    var smsid = document.getElementById('hidden-vaptcha-smsid').getAttribute('data-vaptcha-smsid')
    61     var smskey = document.getElementById('hidden-vaptcha-smskey').getAttribute('data-vaptcha-smskey')
    6261    var modelid = document.getElementById('hidden-vaptcha-modelid').getAttribute('data-vaptcha-modelid')
    6362    console.log(type)
     
    6766        scene: 0, // 场景值 默认0
    6867        offline_server: '', //离线模式服务端地址,若尚未配置离线模式,请填写任意地址即可。
     68        area: 'auto',
    6969    }).then(function (vaptchaObj) {
    7070        $('#get_sms_code').show();
     
    7373            // 验证成功进行后续操作
    7474            if (operaticon === 'register') {
    75                 sendSmsCode(vaptchaObj.getToken(), 'register')
     75                sendSmsCode(vaptchaObj.getServerToken(), 'register')
    7676            }
    7777            if (operaticon === 'deviceLogin') {
    78                 deviceLogin(vaptchaObj.getToken())
     78                deviceLogin(vaptchaObj.getServerToken())
    7979            }
    8080            if (operaticon === 'smsLogin') {
    81                 addDevice(vaptchaObj.getToken())
     81                addDevice(vaptchaObj.getServerToken())
    8282            }
    8383            if (operaticon === 'getSmsCode') {
    84                 sendSmsCode(vaptchaObj.getToken(), 'login')
     84                sendSmsCode(vaptchaObj.getServerToken(), 'login')
    8585            }
    8686            vaptchaObj.reset() //重置验证码
     
    9292    })
    9393
     94    var smsToken = '';
    9495    //发送验证码
    9596    function sendSmsCode(token, key) {
     
    101102                action: 'send_smscode',
    102103                phone: $('#user_phone').val(),
    103                 token: token,
     104                token: token.token,
     105                server: token.server,
    104106                smsid: smsid,
    105                 smskey: smskey,
    106107                countrycode: $('#country_code').val(),
    107108                templateid: modelid,
     
    109110            success: function (res) {
    110111                if (res.data === 200) {
     112                    smsToken = token.token
    111113                    key === 'register' ? sendCountdown() : loginSendCountdown()
    112114                } else {
     
    126128                action: 'device_login',
    127129                phone: $('#user_phone').val(),
    128                 token: token,
     130                token: token.token,
     131                server: token.server
    129132            },
    130133            success: function (res) {
     
    238241                token: token,
    239242                smsid: smsid,
    240                 smskey: smskey,
    241243                code: $('#sms_code').val()
    242244            },
     
    341343    })
    342344
    343     //登录按钮
     345    //验证码 登录按钮
    344346    $('#sms_login_button').click(function () {
    345347        operaticon = 'smsLogin';
    346         obj.validate()
     348        addDevice(smsToken)
     349        // obj.validate()
    347350    })
    348351
  • vaptcha-sms/trunk/lib/VaptchaSms.class.php

    r2511904 r2557559  
    7979     * @return void
    8080     */
    81     public function validate($knock, $token, $sceneId = 0)
     81    public function validate($server,$knock, $token, $sceneId = 0)
    8282    {
    8383        $str = 'ffline-';
     
    8585            return $this->downTimeValidate($token);
    8686        else
    87             return $this->normalValidate($knock, $token, $sceneId);
     87            return $this->normalValidate($server,$knock, $token, $sceneId);
    8888    }
    8989
     
    274274    }
    275275
    276     private function normalValidate($knock, $token, $sceneId)
    277     {
     276    private function normalValidate($server,$knock, $token, $sceneId)
     277    {
     278//        return false;
     279
    278280        if (!$token)
    279281            return false;
    280282        $ip = $this->getClientIp();
    281283        $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;
    283285        $now = $this->getCurrentTime();
    284286        $response = json_decode(self::postValidate($url, $query));
Note: See TracChangeset for help on using the changeset viewer.