Php Laravel:如何保护资源不被其他用户访问?

Php Laravel:如何保护资源不被其他用户访问?,php,laravel,security,authentication,authorization,Php,Laravel,Security,Authentication,Authorization,我想知道如何使用Laravel保护资源不被其他用户访问 例如,如果我有这种情况: 用户1具有id为1的资源 用户2拥有id为2的资源 如何保护用户1对资源2的访问 例如,通过此URL访问要编辑的资源: Laravel有这样做的功能吗?还是我应该手动检查每个控制器方法中的所有权 提前感谢。您可以为此创建: public function update(User $user, Resource $resource) { return $user->id == $resource-

我想知道如何使用Laravel保护资源不被其他用户访问

例如,如果我有这种情况:

  • 用户1具有id为1的资源
  • 用户2拥有id为2的资源
如何保护用户1对资源2的访问

例如,通过此URL访问要编辑的资源:

Laravel有这样做的功能吗?还是我应该手动检查每个控制器方法中的所有权

提前感谢。

您可以为此创建:

public function update(User $user, Resource $resource)
{
    return $user->id == $resource->user_id; //for example
}
然后,您可以将其作为中间件添加到编辑路由:

Route::get('resource/{resource}/edit', ResourceController@edit)->middleware('can:update,resource');

Ps:这只是文档中的一个例子,有很多有用的东西可以帮助您

我应该手动检查每个控制器方法中的所有权吗?并不是在每种方法中,您都会对一组URL或控制器操作使用中间件。请尝试查看是的!谢谢你,马拉博克