我创建了一个laravel rest api。我的路线是用
Route::apiResource()
.
身份验证是使用passport设置的,并按预期工作。
现在,我尝试使用附加到的中间件来实现管理角色
store
,
update
和
delete
在我的控制器中:
$this->middleware('admin-only', ['only' => ['store', 'update', 'delete']]);
我想让我的申请回复
403 Insufficient permissions
如果用户不是管理员。
为了
GET
它按预期工作,但对于PUT请求,laravel总是返回一个带有
302 Found
.
AdminOnly中间件
namespace App\Http\Middleware;
use Illuminate\Http\Response;
use Closure;
use Illuminate\Support\Facades\Auth;
class AdminOnly {
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next) {
$user = Auth::user();
if (!$user->admin) {
return Response::create('Insufficient permissions', 403);
}
return $next($request);
}
}