0
点赞
收藏
分享

微信扫一扫

laravel使用中间件来指定请求的IP白名单

霍华德 2023-03-24 阅读 73


1 创建middleware中间件

php artisan make:middleware GetCurrentTime

该命令会在 app/Http/Middleware 目录下创建一个新的GetCurrentTime.php文件。

<?php

namespace App\Http\Middleware;

use Closure;

class GetCurrentTime
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        $ip=[
            '172.20.31.120',
            '172.20.31.110',
            '172.20.31.10',
            '172.20.31.12'
        ];
        if(in_array($request->getClientIp(), $ip))
        {
            return $next($request);
        }else{
            // return redirect()->to('http://textlaravel.cc');
            # 返回自定义json
            $request->headers->set('Accept', 'application/json');
            return response()->json(['noip' => '无权限访问','yesip'=>$ip]);
        }
        
    }
}

2 注册中间件

注册中间件分为两种:全局和路由

本文采用路由中间件

路由中使用中间件
在app\Http\Kernel.php中的protected $routeMiddleware中注册路由中间件

protected $routeMiddleware = [    
    'getip'=>\App\Http\Middleware\GetCurrentTime::class,
];

3 访问带中间件的路由

Route::get('/getip','TestController@getip')->middleware('getip');

laravel使用中间件来指定请求的IP白名单_php


laravel使用中间件来指定请求的IP白名单_php_02


举报

相关推荐

0 条评论