Php 我可以在Laravel中同时使用web和api防护吗?

Php 我可以在Laravel中同时使用web和api防护吗?,php,laravel,Php,Laravel,到目前为止,我只使用了来自网站的API(用于AJAX请求),所以我应用了web中间件,但我将使用相同的方法和路线构建移动应用程序。 我试图在\api\路由上使用auth:api中间件,但它迫使我在每个请求中使用令牌。 是否有任何方法可以区分所使用的身份验证类型,然后应用适当的中间件?是的,您可以通过不同的URL将不同的中间件应用于相同的控制器/路由 假设Laravel 5.4,那么在RouteServiceProvider.php中的某个地方: Route::middleware('web')

到目前为止,我只使用了来自网站的API(用于AJAX请求),所以我应用了
web
中间件,但我将使用相同的方法和路线构建移动应用程序。
我试图在
\api\
路由上使用
auth:api
中间件,但它迫使我在每个请求中使用令牌。

是否有任何方法可以区分所使用的身份验证类型,然后应用适当的中间件?

是的,您可以通过不同的URL将不同的中间件应用于相同的控制器/路由

假设Laravel 5.4,那么在
RouteServiceProvider.php
中的某个地方:

Route::middleware('web')
     ->namespace($this->namespace)
     ->group(base_path('routes/web.php'));

Route::prefix('api')
     ->middleware(['auth:api', 'web'])
     ->namespace($this->namespace)
     ->group(base_path('routes/web.php'));

请注意,两个路由组具有相同的路由文件和相同的命名空间,但第二个路由组具有不同的middlewar集合和URL前缀。

是的,您可以通过不同的URL将不同的中间件应用于相同的控制器/路由

假设Laravel 5.4,那么在
RouteServiceProvider.php
中的某个地方:

Route::middleware('web')
     ->namespace($this->namespace)
     ->group(base_path('routes/web.php'));

Route::prefix('api')
     ->middleware(['auth:api', 'web'])
     ->namespace($this->namespace)
     ->group(base_path('routes/web.php'));

请注意,两个路由组具有相同的路由文件和相同的命名空间,但第二个路由组具有不同的middlewar集合和URL前缀。

请向我们显示您当前使用的代码。请向我们显示您当前使用的代码。