【问题标题】:Error 403 This action is unauthorized. with provider in Laravel错误 403 此操作未经授权。与 Laravel 中的提供者一起
【发布时间】:2020-06-17 02:57:39
【问题描述】:

大家好,晚上好。 我正在用 laravel 练习,但我有错误。 我不确定因为我有一个错误 403 。 我正在使用提供商! 这是方法从用户获取 id 并使用 $this->authorize($user);

 public function edit($id){
        // buscar usuario en la base de datos y evitar
        // la insercion de datos nulos
        $user = User::findorFail($id);
        $this->authorize($user);
        return view('users.edit', compact('user')); 
    }

之后在名为 PoliticaUsuario 的类中有一个名为“edit”的方法,我想比较用户但返回 false,我得到错误 403 或此操作未经授权。!

class PoliticaUsuario
{
    use HandlesAuthorization;

    /**
     * Create a new policy instance.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

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


}

显然,这是 Provider,我在其中插入名为 PoliticaUsuario 的类和用户模型

class AuthServiceProvider extends ServiceProvider
{
    /**
     * The policy mappings for the application.
     *
     * @var array
     */
    protected $policies = [
        User::class => PoliticaUsuario::class,
    ];

    /**
     * Register any authentication / authorization services.
     *
     * @return void
     */
    public function boot()
    {
        $this->registerPolicies();

        //
    }
}

this is the photo from database :) 请原谅我的英语我还在学习!!

【问题讨论】:

  • 你使用的是什么版本的 Laravel?
  • @lagbox 完全正确!!但是现在有人帮助了我!!谢谢!!
  • @lagbox 7.15.0 !!! :) 它非常有趣的 laravel !!

标签: laravel


【解决方案1】:

你还是需要像这样传递方法名

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

【讨论】:

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