Spatie/laravel-permission。 hasRole() 为空
Spatie/laravel-permission. hasRole() on null
已添加 spatie/laravel-permission,一切都通过 routes/api 中的中间件工作。php
Route::get('roles', [RoleController::class, 'rolesIndex'])->middleware('role:Admin');
我想为 api 进行角色检查并添加了一个函数:
function check($roleName) {
$user = Auth::user();
if (!$user->hasRole($roleName)) {
abort(403);
}
return response('', 202);
}
添加到路由器 - 寻址路由:
Route::get('check/{roleName}', [RoleController::class, 'check']);
但是当联系我时,它给出:在 null 上调用成员函数 hasRole()
要获得您的 API
的经过身份验证的 user
,您需要引用 api
守卫:
$user = auth('api')->user();
if (!$user->hasRole($roleName) {
// ...
}
或更简单:
if (!auth('api')->user()->hasRole($roleName)) {
// ...
}
已添加 spatie/laravel-permission,一切都通过 routes/api 中的中间件工作。php
Route::get('roles', [RoleController::class, 'rolesIndex'])->middleware('role:Admin');
我想为 api 进行角色检查并添加了一个函数:
function check($roleName) {
$user = Auth::user();
if (!$user->hasRole($roleName)) {
abort(403);
}
return response('', 202);
}
添加到路由器 - 寻址路由:
Route::get('check/{roleName}', [RoleController::class, 'check']);
但是当联系我时,它给出:在 null 上调用成员函数 hasRole()
要获得您的 API
的经过身份验证的 user
,您需要引用 api
守卫:
$user = auth('api')->user();
if (!$user->hasRole($roleName) {
// ...
}
或更简单:
if (!auth('api')->user()->hasRole($roleName)) {
// ...
}