zoukankan      html  css  js  c++  java
  • yii中的restful方式输出并调用接口和判断用户是否登录状态

     1 //创建一个控制器接口  返回的是restful方式
     2 <?php
     3 namespace frontendcontrollers;
     4 use frontendmodelsFenlei;
     5 use frontendmodelsGoods;
     6 use frontendmodelsPower;
     7 use frontendmodelsUser;
     8 use yii;
     9 use yiiwebController;
    10 use yii
    estActiveController;
    11 class RestfulController extends ActiveController
    12 {
    13     protected  $result=[
    14         'code'=>0,
    15         'data'=>'',
    16         'error'=>''
    17     ];
    18     public $modelClass='';
    19 
    20     public function actions()
    21     {
    22         $actions=parent::actions();
    23         unset($actions['view'],$actions['index'],$actions['create'],$actions['delete'],$actions['update']);
    24         return $actions;
    25     }
    26 
    27     //登录页面
    28     public function actionLogin()
    29     {
    30         $data['name']=Yii::$app->request->post('name');
    31         $data['pwd']=Yii::$app->request->post('pwd');
    32         if(empty( $data['name']) || empty($data['pwd']))
    33         {
    34             $this->result['error']="用户名密码不能为空";
    35             $this->result['code']="1001";
    36             return $this->result;
    37         }
    38         $aa=User::user($data);
    39         if($aa)
    40         {
    41             Yii::$app->cache->set('name',1,7200);
    42             $token=md5($data['name'].$data['pwd']);
    43             $this->result['data']=$token;
    44             $this->result['error']="登录成功";
    45         }else{
    46             $this->result['error']="登录失败";
    47         }
    48         return $this->result;
    49     }
    50 }
    //然后通过另一个控制器来调用接口
    <?php
    namespace frontendcontrollers;
    use frontendmodelsCurl;
    use yii;
    use yiiwebController;
    use yii
    estActiveController;
    class LoginController extends Controller
    {
        //登录页面
        public function actionLogin()
        {
            $name=Yii::$app->request->get('name');
            $pwd=Yii::$app->request->get('pwd');
            $curl = new Curl();
            $url='http://weixin.api.com/index.php/restful/login';
            $data=[
                'name'=>$name,
                'pwd'=>$pwd
            ];
            $aa=$curl->getCurl($url,'post',$data);
            //返回的是json数据
            $a=json_decode($aa,true);
            $token=$a['data'];
            file_put_contents('login.txt',$token);
            var_dump($token);
        }
    }
    //这是curl的方式调用
    <?php
    namespace frontendmodels;
    class Curl
    {
        public function getCurl($url,$type='get',$data,$https='true')
        {
            $ch = curl_init($url);
            curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
            if($type=='post')
            {
                curl_setopt($ch,CURLOPT_POST,1);
                curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
            }
            if($https=='false')
            {
                curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
                curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);
            }
            $data=curl_exec($ch);
            curl_close($ch);
            return $data;
        }
    }
    //判断用户是否登录的状态
    <?php
    namespace frontendcontrollers;
    use frontendmodelsCurl;
    use yii;
    use yiiwebController;
    class CatController extends Controller
    {
       //判断用户是否存在
        public function init()
        {
            $name=Yii::$app->cache->get('name');
            if($name !=1)
            {
                Yii::$app->cache->set('name',2);
                return "请登录";
            }
        }
    
        //水果的添加
        public function actionAdd()
        {
            $data['g_goods']=Yii::$app->request->get('g_goods');
            $data['g_kc']=Yii::$app->request->get('g_kc');
            $data['id']=Yii::$app->request->get('id');
            $url='http://weixin.api.com/index.php/restful/add';
            $curl = new Curl();
            $aa=$curl->getCurl($url,'post',$data);
            var_dump($aa);
        }
    }
    你所浪费的今天是那些死去的人所奢望的明天,你所厌恶的现在是未来的你所回不去的曾经。
  • 相关阅读:
    学习记录
    cxf client端借口类型找不到问题
    zookeeper dubbo 问题解决录
    unkow jdbc driver : http://maven.apache.org
    推荐eclipse插件Properties Editor
    WPS for Linux,系统缺失字体
    Android 联系人字母排序(仿微信)
    Android之ORMLite实现数据持久化的简单使用
    设计模式之多例模式
    设计模式之单例模式
  • 原文地址:https://www.cnblogs.com/stj123/p/10518727.html
Copyright © 2011-2022 走看看