为什么我修改自己的话题,都是 403 没有权限?查看了其他同学遇到的问题,还是没有解决。这是第二篇时,发现的问题。

file
每个代码都仔细查看过了,就是没有发现问题。
file
file
file

有志者事竟成
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 15
liyu001989

那么就加个日志调试啊,看看你现在登录的用户到底是谁,话题的作者到底是谁,如果是同一个人,去 policy
里面加日志看看为什么会返回 false

5年前 评论

@liyu001989

file

file
这是我日志中的显示结果,是同一个人操作,如果去policy里加日志看返回false的原因呢?指点一下,。

5年前 评论
宇宙最厉害

@JasonLWF 把你的策略代码贴出来看一下。

5年前 评论

@沈益飞

file :grimacing:大神指点下

5年前 评论
liyu001989

isAuthorOf 的方法就是这样,你就是不愿意加个日志 logger,dd 检查一下到底为什么会返回 false?

    public function isAuthorOf($model)
    {
        return $this->id == $model->user_id;
    }
5年前 评论

@liyu001989

file

file

file
是这样打印isAuthorOf 的方法?日志是输出的结果为空,不明白什么原因呀。 :joy:

5年前 评论

@Jason2018 你 User Model中 isAuthorOf 怎么写的,贴出来看一下。

5年前 评论

@youxia

file
我是这样子写的。 :grin:

5年前 评论

@youxia 我之前第一次测试时,是正常的。后台写小程序测试api时失败。再回头测试,就一直失败。不知道 是哪个细节错了。 :smile:

5年前 评论

@Jason2018 你直接在接口中返回 $this->user()->id 和 $topic->user_id 看两个是否一致。 如果一致的话, 那么按道理说你所有的权限接口都会出现同样的问题。.

5年前 评论

@youxia 好的,谢谢。我测试下。

5年前 评论

楼主解决了吗?我现在碰到的问题跟你一样

5年前 评论

@tianxionglu 我还没有解决呢,现在在做laravel-shop,做完后,回头再想办法解决。你解决了后,希望能告诉下我方法。 :grimacing: :see_no_evil:

5年前 评论

@Jason2018 看下conifg/api.php里面认证方式是不是jwt

file

5年前 评论
  • 你可以在 \App\Providers\AppServiceProvider::register中,对API:error包裹的回调函数增加一个dd($exception),看看异常到底报什么。
        API::error(function (\Illuminate\Auth\Access\AuthorizationException $exception) {
            dd($exception);
            abort(403, $exception->getMessage());
        });
5年前 评论

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