gpt4 book ai didi

laravel - 在不同端口上提供 API 路由和 Web 路由

转载 作者:行者123 更新时间:2023-12-03 08:49:39 25 4
gpt4 key购买 nike

我有一些与我的 REST API 相关的 api 路由以及一些与我的管理面板相关的 Web 路由。我的员工要求我在特定端口上提供 API 路由,并在另一个端口上提供管理面板,这样我们就可以阻止来自除本地网络之外的任何地方对管理面板的所有请求。我的问题是,如何在特定端口上提供 api.php 文件中的路由,并在另一个端口上提供 web.php 文件中的所有路由。
有没有其他方法可以阻止每个人从互联网访问 web.php 路由???

最佳答案

与 @rostik-hvostik 提出的注册或不注册路由不同的方法是通过中间件进行验证。

它为我们的使用场所提供了更大的灵活性。

app/Http/Middleware/ListenPort.php


namespace App\Http\Middleware;

use Closure;

class ListenPort
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next, ...$ports)
{
// I'm not sure if $ports is an array of string or integer though
if (in_array($request->getPort(), $ports, true)) {
return $next($request);
}

abort(403);

}
}

app/Http/Kernel.php

protected $routeMiddleware = [
'listen' => \App\Http\Middleware\ListenPort::class,
]

protected $middlewareGroups = [
'web' => [
...,
'listen:80',
],

'api' => [
...,
'listen:8000',
],
];

关于laravel - 在不同端口上提供 API 路由和 Web 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59749481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com