为什么没有经过权限认证呢?

这是UsersController

public function __construct()
    {
        $this->middleware('auth', ['except' => ['show']]);
    }

且每个编辑方法下增加了

$this->authorize('update', $user);

这个是权限类

<?php

namespace App\Policies;

use App\Models\User;
use Illuminate\Auth\Access\HandlesAuthorization;

class UserPolicy
{
    use HandlesAuthorization;

    public function update(User $currentUser, User $user){
        return $currentUser->id === $user->id;
    }
}

以上是我的代码,但是,前台还是能够修改他人账户信息,相当于没有经过这个权限认证,我也不知道怎么去测试好??

求教。O(∩_∩)O谢谢

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

自己清理下谷歌缓存就好了

5年前 评论
讨论数量: 8

自己清理下谷歌缓存就好了

5年前 评论
Jourdon

接下来我们还需要在 AuthServiceProvider 类中对授权策略进行注册。AuthServiceProvider 包含了一个 policies 属性,该属性用于将各种模型对应到管理它们的授权策略上。我们需要为用户模型 User 指定授权策略 UserPolicy。

请问你有对授权策略进行注册吗?
发贴请参考 Markdown 格式, 看着好不舒服!!!
帮你修改完看着舒服多了

5年前 评论
Sparkfly

权限控制问题-使用权限中间件对用户操作进行控制

直接调试方法

$this->authorize('update', $user);

进行前后输出

var_dump($user);
$result = $this->authorize('update', $user);
var_dump($result);

具体问题还是得自己调试

5年前 评论
Jourdon

@jollyson 编辑方法的代码发上来

5年前 评论

@王东哲 感谢,我解决了,,代码都是对的,清理一下缓存就好了

5年前 评论

从你上面贴出的代码,你少了一步

file

5年前 评论

@Arnold19910326 感谢,我之前就解决了,你看我帖子下面的回复,代码都是对的,清理一下缓存就好了

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!