thinkphp ajax提交token

忘记密码的时候需要用到ajax提交,怕短信被盗刷,用的thinkphp自带的token做了个简单的验证(结合验证码)。
看到表单里的token其实是跟表单数据一起验证的,其实就相当于表单里的一个字段。

thinkphp ajax提交token

然后就想到,在ajax中token跟其他字段一起提交就行了。

function setCodeAjax(){
            var mobile = $("[name='phone']").val();
            var token = $("[name='__token__']").val();
            $.ajax({
                    data:{'mobile':mobile,'__token__':token},
                    dataType:'json',
                    type:'post',
                    url:"XXX",
                    success:function (d) {
                        if(d.code == 0 ){
                            //成功处理
                        }else{
                            //失败处理
                        }
                    }
                })
        }

这样提交的格式就完全跟表单提交一样了

thinkphp ajax提交token

后台就可以按照tp手册上的验证来验证了。

例如:

$validate = Validate::make([
            'mobile'  => 'require|token'
        ]);

        $data = $this->request->post();
        $result = $validate->check($data);
        if ($result != true) {
            return _codeMsg('1001',$result);
        }
        
        //后续处理

不过用ajax做验证,需要注意,如果token已经提交进行过验证,那么这个token就会失效,需要在前端手动进行更改。

第一次写文章,先写个简单的练练手(好紧张~~)

相关推荐