码迷,mamicode.com
首页 > Web开发 > 详细

YII2-跳过自带的URL验证

时间:2017-04-12 18:38:10      阅读:263      评论:0      收藏:0      [点我收藏+]

标签: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验证

标签:routes   base   管理   作用   访问   user   需要   component   soft   

原文地址:http://www.cnblogs.com/neng-zheng/p/6700526.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!