Heim > PHP-Framework > Denken Sie an PHP > thinkphp5 fügt eine Methode hinzu, um einer bestimmten IP den Zugriff auf das Modul zu ermöglichen

thinkphp5 fügt eine Methode hinzu, um einer bestimmten IP den Zugriff auf das Modul zu ermöglichen

Freigeben: 2020-04-30 08:59:54
nach vorne
3185 Leute haben es durchsucht

thinkphp5 fügt eine Methode hinzu, um einer bestimmten IP den Zugriff auf das Modul zu ermöglichen

In config.php hinzufügen

'allow_module_ip' => ['admin' => '*'], // Einige IP-Adressen festlegen auf das angegebene Modul zugreifen

['admin' => '*'] Alle IP-Adressen können auf das Admin-Modul zugreifen,

['admin' => 192.168.1.100']] Nur diese beiden IPs können auf das Admin-Modul zugreifen

Am besten an dieser Stelle hinzufügen

// 禁止访问模块
'deny_module_list'       => ['common'],
// 设置某些ip可以访问指定模块
'allow_module_ip'        => ['admin' => '*'],
// 默认控制器名
'default_controller'     => 'Index',
Nach dem Login kopieren

Der Framework-Code muss geändert werden

thinkphp/library/think/App.php

Der Code lautet wie folgt

public static function module($result, $config, $convert = null) {
        if (is_string($result)) {
            $result = explode('/', $result);
        }
        $request = Request::instance();
        if ($config['app_multi_module']) {
            // 多模块部署
            $module    = strip_tags(strtolower($result[0] ?: $config['default_module']));
            $bind      = Route::getBind('module');
            $available = false;
            if ($bind) {
                // 绑定模块
                list($bindModule) = explode('/', $bind);
                if (empty($result[0])) {
                    $module    = $bindModule;
                    $available = true;
                } elseif ($module == $bindModule) {
                    $available = true;
                }
            } elseif (!in_array($module, $config['deny_module_list']) && is_dir(APP_PATH . $module)) {
                $available = true;
            }
            
            //region 设置了限制ip访问模块, 如:'allow_module_ip' => ['admin'=>['127.0.0.1']]
            if (isset($config['allow_module_ip']) && isset($config['allow_module_ip'][$module])) {
                $allowIps = $config['allow_module_ip'][$module];
                if (!in_array($_SERVER['REMOTE_ADDR'], $allowIps) && $allowIps != '*') {
                    $available = false;
                }

            }
            //end region

            // 模块初始化
            if ($module && $available) {
                // 初始化模块
                $request->module($module);
                $config = self::init($module);
                // 模块请求缓存检查
                $request->cache($config['request_cache'], $config['request_cache_expire'], $config['request_cache_except']);
            } else {
                throw new HttpException(404, 'module not exists:' . $module);
            }
        } else {
            // 单一模块部署
            $module = '';
            $request->module($module);
        }
        
        // ......
}
Nach dem Login kopieren

Empfohlenes Tutorial: „TP5

Das obige ist der detaillierte Inhalt vonthinkphp5 fügt eine Methode hinzu, um einer bestimmten IP den Zugriff auf das Modul zu ermöglichen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage