线
Company::class => CompanyPolicy::class,
AuthServiceProvier
你必须把它取下来。
我举个例子:
假设我们有一个名为
SomeModel
view
检查当前用户是否能够调用show方法。
为守卫
api
trait
trait ApiTrait
{
/**
* Authorize a given action for the current user.
*
* @param mixed $ability
* @param mixed|array $arguments
* @return \Illuminate\Auth\Access\Response
*
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function authorizeApi($ability, $arguments)
{
if (!request()->user('api')->can($ability, $arguments)) {
abort(403, 'This action is unauthorized.');
}
}
}
然后在控制器中使用它:
class ExampleController extends Controller
{
use ApiTrait;
public function show(SomeModel $something)
{
$this->authorize('view', $something);
return 'it workes';
}
}
注意,你应该用中间件保护你的路线
auth:api
否则调用
can
中的方法
ApiTrait