我可以在Laravel拥有web和api卫兵吗?
问题描述:
到目前为止,我只从网站使用API(对于AJAX reqeusts),所以我申请了web
中间件,但我打算使用相同的方法和路由构建移动应用程序。
我试图在\api\
路由上使用auth:api
中间件,但它迫使我在每个请求中使用令牌。
有什么办法来区分使用哪种认证,然后应用适当的中间件?我可以在Laravel拥有web和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前缀。
请向我们展示您当前使用的代码。 – Jerodev