私はユーザーと製品を持つアプリケーションを持っています。製品の所有者だけが製品を見ることができるはずです。ユーザーは、製品IDを推測した場合Laravelは所有者ユーザーのみがルートにアクセスできるようにします
彼らが製品を見ることができるかもしれません。
Route::middleware(['middleware' => 'auth'])->prefix('admin')->group(function(){
Route::resource('products', 'ProductController');
});
私の製品コントローラショー方法:例
http://booker.app/admin/products/32
いずれかのIDを持つ製品を見るために、ユーザのログインが可能になるというリンクをたどるために32
これは、問題のルートは、次のとおりです。
public function show(Product $product)
{
if($product->user_id !== Auth::user()->id){
return $this->forbidden('admin/products');
}
return $this->makeResponse('admin.products.product', compact('product'));
}
forbidden関数とmakeResponse関数は、要求estはajaxリクエストであり、そうであればjsonを返します。
許可されたユーザが製品のuser_idと同じである場合、あなたは私が結束ルートモデルを使用していると私はチェックしています見ることができるように。基本的には、ユーザーが製品の所有者であるかどうかを確認する良い方法があります。
使用して、[ポリシー](https://laravel.com/docs/5.4/authorization#writing-policies)これを行う最も "laravel" 方法です。 – milo526