標籤:routes base 管理 作用 訪問 user 需要 component soft
在項目過程中,有時候需要用YII2的架構提供一些公用的介面,但是YII2的backend裡面的controller都有路由驗證,這個時候,只有跳過路由驗證才能正常提供者。 第一步:
vendor/mdmsoft/yii2-admin/components/Configs.php
/*** @var boolean If true then AccessControl only check if route are registered.*/public $onlyRegisteredRoute = true;
第二步:
這樣修改以後,MDM將只校正被添加到許可權系統的URL,而沒有添加的URL就不會進行校正了
在後台管理的許可權管理中,將不需要驗證的URL從註冊表中刪掉。
第三步:
在controller裡面關閉SCRF驗證
class UserController extends BaseController{ //關閉POST請求的CSRF驗證 public $enableCsrfValidation = false;簡單分析
$onlyRegisteredRoute這個參數配置是如何發揮作用的?
跟蹤代碼的執行發現,yii2-admin/components/Helper.php中的代碼如下:
public static function checkRoute($route, $params = [], $user = null){ $config = Configs::instance(); $r = static::normalizeRoute($route); if ($config->onlyRegisteredRoute && !isset(static::getRegisteredRoutes()[$r])) { return true;}
YII2-跳過內建的URL驗證