在API路由中使用Auth-facement(Laravel 8)



我希望在Laravel 8api.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圣地

最新更新