Laravel UserPolicy 总是拒绝授权
Laravel UserPolicy always rejects authorization
我在Laravel中做了一个UserPolicy
,我正在尝试在控制器中使用$this->authorize(User::class)
,但是,当我访问时它总是returns 403错误UserController@index
,如果我从 UserController
中删除 $this->authorize(User::class)
,则不会出现此问题
app/Providers/AuthServiceProvider.php
namespace App\Providers;
use App\Transaction;
use App\Policies\UserPolicy;
use Illuminate\Support\Facades\Gate;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
class AuthServiceProvider extends ServiceProvider
{
/**
* The policy mappings for the application.
*
* @var array
*/
protected $policies = [
User::class => UserPolicy::class
];
/**
* Register any authentication / authorization services.
*
* @return void
*/
public function boot()
{
$this->registerPolicies();
//
}
}
app/Policies/UserPolicy.php
namespace App\Policies;
use App\User;
use Illuminate\Auth\Access\HandlesAuthorization;
class UserPolicy
{
use HandlesAuthorization;
/**
* Determine whether the user can index users.
*
* @param \App\User $model
* @return mixed
*/
public function index(User $user)
{
return true;
}
}
app/Controllers/UserController.php
namespace App\Http\Controllers;
use App\User;
use Illuminate\Http\Request;
class UserController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$this->authorize(User::class);
$users = User::all();
return view('users.index', compact('users'));
}
}
use App\User;
在 app/Providers/AuthServiceProvider.php
中丢失了,谢谢 Mike Foxtech for the
in app/Providers/AuthServiceProvider.php add use App\User;
我在Laravel中做了一个UserPolicy
,我正在尝试在控制器中使用$this->authorize(User::class)
,但是,当我访问时它总是returns 403错误UserController@index
,如果我从 UserController
$this->authorize(User::class)
,则不会出现此问题
app/Providers/AuthServiceProvider.php
namespace App\Providers;
use App\Transaction;
use App\Policies\UserPolicy;
use Illuminate\Support\Facades\Gate;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
class AuthServiceProvider extends ServiceProvider
{
/**
* The policy mappings for the application.
*
* @var array
*/
protected $policies = [
User::class => UserPolicy::class
];
/**
* Register any authentication / authorization services.
*
* @return void
*/
public function boot()
{
$this->registerPolicies();
//
}
}
app/Policies/UserPolicy.php
namespace App\Policies;
use App\User;
use Illuminate\Auth\Access\HandlesAuthorization;
class UserPolicy
{
use HandlesAuthorization;
/**
* Determine whether the user can index users.
*
* @param \App\User $model
* @return mixed
*/
public function index(User $user)
{
return true;
}
}
app/Controllers/UserController.php
namespace App\Http\Controllers;
use App\User;
use Illuminate\Http\Request;
class UserController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$this->authorize(User::class);
$users = User::all();
return view('users.index', compact('users'));
}
}
use App\User;
在 app/Providers/AuthServiceProvider.php
中丢失了,谢谢 Mike Foxtech for the
in app/Providers/AuthServiceProvider.php add use App\User;