有關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回調,當規則禁止訪問的時候會被調用。