Laravel 护照找不到 ApproveAuthorizationController

Laravel passport can't find ApproveAuthorizationController

我正在尝试使用 laravel 通行证功能设置一个具有 oauth 授权的 laravel 应用程序。我使用的是官方教程 (https://laravel.com/docs/master/passport)。但是现在,如果我向“/oauth/authorize”发出 post 请求,则会出现以下错误消息:

Class App\Http\Controllers\Laravel\Passport\Http\Controllers\ApproveAuthorizationController does not exist

我不知道我做错了什么。我使用从 'Passport:routes' 获取的路由,没有自定义路由。

我已经进行了作曲家更新、安装和清除缓存,但没有任何效果。

问题出在这里:

/**
 * Register the routes needed for authorization.
 *
 * @return void
 */
public function forAuthorization()
{
    $this->router->group(['middleware' => ['web', 'auth']], function ($router) {
        $router->get('/authorize', [
            'uses' => 'AuthorizationController@authorize',
        ]);

        $router->post('/authorize', [
            'uses' => 'ApproveAuthorizationController@approve',
        ]);

        $router->delete('/authorize', [
            'uses' => 'DenyAuthorizationController@deny',
        ]);
    });
}

我已经通过使用语句导入缺失的 class 进行了尝试,但它仍然无法正常工作。

有人可以帮我吗?

您似乎在控制器或服务提供商的顶部缺少 use 语句。在某个地方你有一个 class 被使用,但没有先正确导入它。这就是为什么您会看到像这样的连接字符串:

App\Http\Controllers\Laravel\Passport\Http\Controllers\ApproveAuthorizationController.

我假设你需要的是这个:

use Passport\Http\Controllers\ApproveAuthorizationController;
Passport::routes 中的

Passport 未被导入,两者之一。在 AppServiceProvider:

use Laravel\Passport\Passport;