TestController.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. namespace api\modules\v1\controllers;
  3. use yii\rest\ActiveController;
  4. use yii\helpers\ArrayHelper;
  5. use yii\filters\auth\QueryParamAuth;
  6. //use yii\filters\auth\HttpBasicAuth;
  7. //use yii\filters\auth\HttpBearerAuth;
  8. //use yii\filters\auth\CompositeAuth;
  9. use yii\filters\Cors;
  10. use yii;
  11. class TestController extends ActiveController
  12. {
  13. public $modelClass = 'common\models\User';
  14. public $_user="";
  15. // public function behaviors() {
  16. // return ArrayHelper::merge (parent::behaviors(), [
  17. // 'authenticator' => [
  18. // 'class' => QueryParamAuth::className()
  19. // ]
  20. // ] );
  21. // }
  22. // public function behaviors()
  23. // {
  24. // $behaviors = parent::behaviors();
  25. // $behaviors['authenticator'] = [
  26. // 'class' => CompositeAuth::className(),
  27. // 'authMethods' => [
  28. // HttpBasicAuth::className(),
  29. // HttpBearerAuth::className(),
  30. // QueryParamAuth::className(),
  31. // ],
  32. // ];
  33. // return $behaviors;
  34. // }
  35. function behaviors() {
  36. $behaviors = parent::behaviors();
  37. // 当前操作的id
  38. $currentAction = Yii::$app->controller->action->id;
  39. // 需要进行认证的action
  40. $authActions = ['test','test2'];
  41. // 需要进行认证的action就要设置安全认证类
  42. if(in_array($currentAction, $authActions)) {
  43. $behaviors['authenticator'] = [
  44. 'class' => QueryParamAuth::className(),
  45. ];
  46. $this->_user="123123";
  47. }
  48. return ArrayHelper::merge([
  49. //设置可以接收访问的域和方法。
  50. [
  51. 'class' => Cors::className(),
  52. 'cors' => [
  53. 'Origin' => ['*'],
  54. 'Access-Control-Request-Headers' => ['Origin', 'X-Requested-With', 'Content-Type', 'Accept'],
  55. 'Access-Control-Request-Method' => ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'],
  56. ],
  57. ],
  58. ], $behaviors);
  59. }
  60. public function actionTest()
  61. {
  62. //$token = Yii::$app->request->get('access-token');
  63. return ['code'=>0,'message'=>'第一个接口'.$this->_user,'status'=>200];
  64. }
  65. public function actionTest2()
  66. {
  67. $token = Yii::$app->request->get('access-token');
  68. return ['code'=>0,'message'=>'第一个接口6','status'=>200];
  69. }
  70. }