yii中的restful方式输出并调用接口和判断用户是否登录状态

时间:2021-04-26 06:21:21
 //创建一个控制器接口  返回的是restful方式
<?php
namespace frontend\controllers;
use frontend\models\Fenlei;
use frontend\models\Goods;
use frontend\models\Power;
use frontend\models\User;
use yii;
use yii\web\Controller;
use yii\rest\ActiveController;
class RestfulController extends ActiveController
{
protected $result=[
'code'=>0,
'data'=>'',
'error'=>''
];
public $modelClass=''; public function actions()
{
$actions=parent::actions();
unset($actions['view'],$actions['index'],$actions['create'],$actions['delete'],$actions['update']);
return $actions;
} //登录页面
public function actionLogin()
{
$data['name']=Yii::$app->request->post('name');
$data['pwd']=Yii::$app->request->post('pwd');
if(empty( $data['name']) || empty($data['pwd']))
{
$this->result['error']="用户名密码不能为空";
$this->result['code']="1001";
return $this->result;
}
$aa=User::user($data);
if($aa)
{
Yii::$app->cache->set('name',1,7200);
$token=md5($data['name'].$data['pwd']);
$this->result['data']=$token;
$this->result['error']="登录成功";
}else{
$this->result['error']="登录失败";
}
return $this->result;
}
}
//然后通过另一个控制器来调用接口
<?php
namespace frontend\controllers;
use frontend\models\Curl;
use yii;
use yii\web\Controller;
use yii\rest\ActiveController;
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 frontend\models;
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 frontend\controllers;
use frontend\models\Curl;
use yii;
use yii\web\Controller;
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);
}
}