gpt4 book ai didi

php - 用于检查资源是否为用户所有的中间件

转载 作者:可可西里 更新时间:2023-10-31 23:04:21 24 4
gpt4 key购买 nike

我在制作检查用户是否拥有所请求资源的中间件时遇到了一些问题。

例如,如果用户转到 /playlists/1/edit,并且他们不拥有播放列表 1,则应该显示 401 错误。

这是我目前所拥有的:

class CheckOwnership {

public function handle(Request $request, Closure $next)
{
if (Playlist::find($request->route()->parameters()['playlists'])->user_id !== $request->user()->id)
{
return response('Unauthorized.', 401);
}

return $next($request);
}

}

这很糟糕,只适用于播放列表资源,但我找不到更好的方法。

谢谢

最佳答案

这可以通过新添加的表单请求验证轻松实现。

您可以在此处查看详细信息(授权表单请求): http://laravel.com/docs/5.0/validation#form-request-validation

给出的示例实际上是关于用户试图编辑他们拥有的评论。

摘录:

The form request class also contains an authorize method. Within this method, you may check if the authenticated user actually has the authority to update a given resource. For example, if a user is attempting to update a blog post comment, do they actually own that comment?

在您的情况下,如果他们不拥有播放列表,只需从授权方法中返回 false。

关于php - 用于检查资源是否为用户所有的中间件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29156599/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com