首页 > Web开发 > 详细

YII2-跳过自带的URL验证

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

  在项目过程中,有时候需要用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验证

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!