Yii2中限制訪問某控制器的IP(IP白名單)


有關Yii2.0鑒權之訪問控制過濾器參考這篇文章  http://www.yiiframework.com/doc-2.0/guide-security-authorization.html

這里主要說下怎么在控制器中限制訪問的IP:

use yii\web\Controller;
use yii\filters\AccessControl;

class SiteController extends Controller
{
    public function behaviors()
    {
        return [
            'access' => [
                'class' => AccessControl::className(),
                'only' => ['login', 'logout', 'signup'],
               'rules' => [
                    [
                        'ips' => [ '127.0.0.1'],//這里填寫允許訪問的IP
                         'allow' => true,
                    ],
            ],
        ];
    }
    // ...
}                                    

 

訪問規則支持很多選項,下面是一些簡要說明,你也可以通過擴展yii\filters\AccessRule來創建你自己的訪問規則類:

  • allow:指定這是一條允許(allow)還是拒絕(deny)規則。

  • actions:這條規則匹配那些動作(action)。是一個動作ID的數組,區分大小寫,假如這個選項設置為空或者不設置,那么這條規則適用於所有動作(action)。

  • controllers:指定這條規則適用於那些控制器(controller)。值是控制器ID數組,區分大小寫,設置為空或者不設置,意味着適用於所有控制器(controller)。

  • roles:指定這條規則適用於那些用戶角色。有兩個認可的特殊角色,都是通過yii\web\User::$isGuest來檢查。?:匹配游客(未認證用戶),@:匹配已認證的用戶,未設置或設為空,則匹配所有角色。

  • ips:匹配那些客戶端IP。ip地址可以使用通配符(*),比如:192.168.*。為設置或設為空則匹配所有IP。

  • verbs:匹配那些請求方式(如:GET,POST)。區分大小寫。

  • matchCallback:指定一個PHP回調,以確定應用該規則。

  • denyCallback:PHP回調,當規則禁止訪問的時候會被調用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM