This action is unauthorized.怎么解决?

修改话题和删除话题权限认证不通过
"message": "This action is unauthorized.",
"status_code": 500,
"debug": {
"line": 28,
"file": "/data/wwwroot/larabbs/vendor/laravel/framework/src/Illuminate/Auth/Access/HandlesAuthorization.php",
"class": "Illuminate\Auth\Access\AuthorizationException",
现在确定我的token对应的用户就是那篇帖子的作者,但是这个地方一直通过不了
我把下面的改成return true就可以了,请问是什么原因?有没有人帮忙看看,谢谢

public function update(User $user, Topic $topic)
{
// return $user->isAuthorOf($topic);
return true;
}

这个地方日志中得不到topic
public function update(User $user, Topic $topic)
{
    //        \Log::info($topic);
    return $user->isAuthorOf($topic);
}
zhangatle
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
liyu001989
最佳答案

file

bindings中间件没加吧

5年前 评论
JHWu 4年前
讨论数量: 11
Epona

说明 update里的user 与 isAuthorOf 里topic的user不是同一个,你可以看一下isAuthorOf方法里的代码是不是你想要的代码。

5年前 评论
liyu001989

你在 isAuthorOf 这个方法中加一些日志看看为什么会返回 false

5年前 评论
zhangatle

打印日志了,显示topic为空,得不到topic

5年前 评论
zhangatle

@liyu001989 日志中显示topic为空

5年前 评论
zhangatle

@Epona 日志显示没有得到topic,是空的,user能得到

5年前 评论
liyu001989

file

bindings中间件没加吧

5年前 评论
JHWu 4年前
zhangatle

@liyu001989 真的是这个原因,谢谢

5年前 评论

@liyu001989 我中间件加载了,也还是失败。太神奇了。第一次按教程来操作是成功的,到后面小程序中,删除话题时,发现接口有问题,现在返回来测试接口,就一直失败。 :sob:

5年前 评论
liyu001989

@JasonLWF 所以你觉得我应该怎么帮助你调试

5年前 评论

@liyu001989 如何调试是否正确授权了,现在只剩下授权的问题了。 :joy: :sob:

5年前 评论

@Jason2018 我也遇到同样的问题了 绑定了中间键了 清除缓存了也都
$this->authorize('update', $topic);
除非去掉这行才可以 我用日志打印这个也不行 \Log::info($this->authorize('update', $topic)
); 同样会报错403 现在应该是$this->authorize 这个方法 这里 有问题

4年前 评论

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