我希望在Laravel 8中api.php
路由文件中的CompanyController
中使用Auth::user()
。像
Route::get('team', [CompanyController::class, 'index']);
但如果我这样做,我将无法访问CompanyController
文件中以下代码中的Auth。
use IlluminateSupportFacadesAuth;
public function index(Request $request)
{
/**
* Role 1 => admin, 2 => hr, 3=> member
*/
if (Auth::user()->role <= 2) {
return ['company' => Auth::user()->company, 'team' => Auth::user()->company->users];
}
}
因此,我现在所做的是为位于web.php
路由文件中的路由添加前缀api。
Route::prefix('api')->group(function () {
Route::get('team', [CompanyController::class, 'index']);
}
在谷歌上搜索后,我或多或少地意识到Laravel Sanctum可能会解决这个问题,而这是因为Api路线中使用的代币驱动程序。但我想知道是否有任何简单的替代解决方案。使用Sanctum定制登录页面似乎需要一段时间。
我想要的仍然是利用Breeze入门套件设置的初始登录页面。同时,用户登录后,可以访问Auth。
if (Auth::user()->role <= 2) {
在这里,您假设用户已通过身份验证,并且需要将此路由与身份验证中间件一起使用。例如:
Route::get('team', [CompanyController::class, 'index'])->middleware('auth');
如果你将使用Laravel圣地,你需要保护路线(只有在真正需要的时候)
Route::get('team', [CompanyController::class, 'index'])->middleware('auth:sanctum');
文件:
- Laravel中间件
- Laravel圣地