亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Yii2 只允許訪問特定控制器并限制對其他控制器的訪問

Yii2 只允許訪問特定控制器并限制對其他控制器的訪問

PHP
明月笑刀無情 2023-04-21 15:05:32
我有一個包含許多控制器的 yii2 高級項目,我只希望用戶可以訪問某些控制器并阻止對其他控制器的訪問。使用訪問控制我可以為操作設置規則但不能為控制器設置規則,請提出任何建議
查看完整描述

1 回答

?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

有幾種類型的配置:


1) 使用主要配置阻止對整個應用程序(ak 后端)的訪問:


// ../config/main.php

return [

    // ...

    'components' => [

         // ...

    ],

    'as access' => [

        'class' => yii\filters\AccessControl::class,

        'except' => ['site/error', 'site/login', 'site/logout'],

        'rules' => [

            ['allow' => true, 'roles' => ['@']],

        ],

    ],

];

2)通過擴展抽象控制器類來阻止對特定控制器的訪問


use yii\filters\AccessControl;

use yii\web\Controller;


/**

 *  AbstractSecured controller

 */

abstract class AbstractSecuredController extends Controller

{

    /**

     * {@inheritdoc}

     */

    public function behaviors()

    {

        return [

            'access' => [

                'class' => AccessControl::class,

                // ...

                // rules

            ]

        ];

    }

}

現在你可以在你的控制器中擴展這個控制器


use yii\helpers\ArrayHelper;


/**

 * MyNonPublic controller

 */

class MyNonPublicController extends AbstractSecuredController

{

    /**

     * {@inheritdoc}

     */

    public function behaviors()

    {

        return ArrayHelper::merge(

            parent::behaviors(),

            [

                // ...

                // controller specific behaviors

                // you can even rewrite access behavior config

            ]

        );

    }

}

3)你也可以配置ACL


查看完整回答
反對 回復 2023-04-21
  • 1 回答
  • 0 關注
  • 154 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號