【发布时间】:2021-09-22 15:56:51
【问题描述】:
我的PostController 中有以下中间件。
public function __construct()
{
$this->middleware('auth')->except(['index', 'show']);
}
我了解任何经过身份验证的用户仍然可以通过访问 localhost/posts/{post}/edit 来编辑帖子,因此我已通过以下代码对其进行保护。
public function edit(Post $post)
{
if(auth()->user()->id === $post->user_id){
$categories = Category::all();
return view('edit-post', compact(['post', 'categories']));
} else{
abort(403, 'Unauthorized.');
}
}
现在,我想知道是否有必要保护 destroy 方法?在这种情况下,经过身份验证的用户是否可以删除他们没有创建的帖子?如果他们可以,我能知道他们怎么做吗?
我的销毁方法
public function destroy(Post $post)
{
Storage::disk('public')->delete($post->imagePath);
$post->delete();
return redirect(route('posts.index'))->with('flash', 'Post Deleted Successfully');
}
【问题讨论】:
标签: laravel middleware