【问题标题】:Laravel Authorization using PoliciesLaravel 使用策略授权
【发布时间】:2017-02-05 18:54:34
【问题描述】:

所以我需要帮助学习如何创建策略来进行授权。我非常了解盖茨,它们对我有用,但是当我创建策略时,它不起作用。

这是我正在使用的代码。我认为我遇到的问题是试图找出您将给定模型功能的授权检查放在哪里?

public function update(User $user, Message $message)
{
   return true;
}

在这里,我只是将测试切换为真或假,只是为了看看事情是如何运作的。但是当我在消息控制器中这样做时:

if ($user->can('update', $message)) {
    return 'You can update this post';
}

它不起作用。我还遇到了另一种使用 $this->authorize('update', $message); 在控制器中检查授权的方法;但这也没有用。

谢谢。

【问题讨论】:

  • 您是否在 AuthServiceProvider 中注册了 Policy 课程?
  • @Domm5 是的,我做了 'App\Message' => 'App\Policies\MessagePolicy',

标签: laravel laravel-authorization


【解决方案1】:

所以我让系统在雨夹雪后运行。我改变了很多东西,卡在了很多地方,以至于我不知道自己到底做了什么。但似乎最大的不同是改变了我注册政策的方式。在 AuthServiceProvider 中的策略数组中,显然是在格式期间编写的示例。尽管文档最后以 ::class 的格式显示了模型和策略的注册,但我还是使用了字符串格式。我想这是我的问题。另外,我必须将消息的实际实例传递给授权方法,而不是使用 Message::class, 方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-12
    • 1970-01-01
    • 2019-04-04
    • 2019-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多