到目前为止,我只在网站上使用API(用于AJAX请求),所以我应用了web
中间件,但我将使用相同的方法和路线构建移动应用程序。
我尝试在auth:api
路由上使用\api\
中间件,但它强制我在每个请求中使用令牌。
有没有办法区分使用哪种身份验证然后应用适当的中间件?
答案 0 :(得分:0)
是的,您可以通过不同的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前缀。