使用laravel的policy,访问接口总是显示403 THIS ACTION IS UNAUTHORIZED,怎么解决啊
1. 运行环境
1). 当前使用的 Laravel 版本?
8.75
2). 当前使用的 php/php-fpm 版本?
PHP 版本:
7.4
3). 当前系统
CentOS 8
4). 业务环境
开发环境
2. 问题描述?
控制器代码
<?php
namespace App\Http\Controllers;
use App\Http\Requests\UserLoginRequest;
use App\Http\Resources\UserResource;
use App\Models\User;
class UserController extends Controller
{
public function index()
{
$this->authorize('viewAny', User::class);
return UserResource::collection(User::all());
}
public function store(UserLoginRequest $request)
{
$this->authorize('create', User::class);
return new UserResource(User::create($request->validated()));
}
public function show(User $user)
{
$this->authorize('view', $user);
return new UserResource($user);
}
public function update(UserLoginRequest $request, User $user)
{
$this->authorize('update', $user);
$user->update($request->validated());
return new UserResource($user);
}
public function destroy(User $user)
{
$this->authorize('delete', $user);
$user->delete();
return response()->json();
}
}
?>
policy代码
<?php
namespace App\Policies;
use App\Models\User;
use Illuminate\Auth\Access\HandlesAuthorization;
class UserPolicy
{
use HandlesAuthorization;
public function viewAny(User $user): bool
{
return true;
}
public function view(User $user, User $model): bool
{
}
public function create(User $user): bool
{
return true;
}
public function update(User $user, User $model): bool
{
}
public function delete(User $user, User $model): bool
{
}
public function restore(User $user, User $model): bool
{
}
public function forceDelete(User $user, User $model): bool
{
}
}
是不是没注册 用户授权《Laravel 9 中文文档》