我正在尝试获得在Laravel应用程序中工作的授权的基本示例,但是不确定我在做什么错。我希望我的控制器代码仅在用户是管理员时才执行。
在我的 AuthServiceProvider 中,我有这个
public function boot()
{
$this->registerPolicies();
Gate::define('isAdmin', function($user){
return $user->type === 'admin';
});
}
然后在我的控制器中有
public function index()
{
$this->authorize('isAdmin');
// Controller code
}
但是,对于用户类型'user'和'admin'而言,这将返回“此操作未经授权。”。我也尝试过使用$this->authorizeResource('isAdmin');
,但是由于代码像往常一样执行,因此似乎没有任何作用。