zoukankan      html  css  js  c++  java
  • api开发CommonController

    <?php
    
    namespace appapicontroller;
    
    use thinkController;
    use thinkRequest;
    use thinkValidate;
    
    class Common extends Controller
    {
        protected $params;
    
        //每个控制器的方法对应的请求参数验证规则
        protected $rules = [
            "User" => [
                "login" => [
                    "username" => "require|max:6",
                    "password" => "require|length:32"
                ]
            ]
        ];
    
        public function initialize()
        {
            $params = input();
            $time = isset($params['time'])?$params['time']:"";
            $token = isset($params['token'])?$params['token']:"";
            $this->check_time($time);
            $this->check_token($token, $time);
            $this->check_params($params);
        }
    
        /*验证请求接口时间*/
        public function check_time($time)
        {
            if($time == "" || time()-$time>60)
            {
                $this->return_msg(400, "请求时间超时");
            }
        }
    
        /*验证令牌*/
        public function check_token($token, $time)
        {
            if($token == "" || $token != md5("cain_$time"))
            {
                $this->return_msg(400, "token令牌验证失败");
            }
    
        }
    
        /*验证并过滤参数*/
        public function check_params($params)
        {
            unset($params['time']);
            unset($params['token']);
            $validate = Validate::make($this->rules[request()->controller()][request()->action()]);
            if(!$validate->check($params))
            {
                $this->return_msg(400, $validate->getError());
    
            }
            else
                $this->params = $params;
    
        }
    
        /*返回信息*/
        public function return_msg($code, $msg="", $data=[])
        {
            echo json_encode(['code'=>$code, 'msg'=>$msg, "data"=>$data]);die;
        }
    
    
    
    }
  • 相关阅读:
    c3p0使用
    连接池介绍
    内存角度探寻C++面向对象 之 继承、多态
    java多线程总结
    SQL关联查询总结
    java内存管理总结
    自制操作系统 (六) 分割编译与中断处理
    C++内联函数
    C++函数指针
    springmvc下实现登录验证码功能
  • 原文地址:https://www.cnblogs.com/dominik/p/13279689.html
Copyright © 2011-2022 走看看