Simple Gate test redirects to unauthorized page all the time

Viewed 12

I have a simple Gate in AuthServiceProvider:

public function boot()
{
    $this->registerPolicies();
 
    Gate::define('test', function (User $user) {
        return true;
    });
}

Then I'm trying to test it on web.php:

Route::get('/', function () {
    return view('welcome');
})->middleware('can:test')

but it redirects me to the unauthorized page, why? The User model exists, but I just return true anyway

1 Answers

Using Gate and can middleware first requires authenticated request, then it check the gate logic you define

If you are getting unauthorized response even if your gate always returns true, it simply means your request came from non-logged-in user

Related