Laravel 5 Laravel 5.4:根据用户登录或注销创建路由的最佳方法是什么

Laravel 5 Laravel 5.4:根据用户登录或注销创建路由的最佳方法是什么,laravel-5,composer-php,Laravel 5,Composer Php,因此,我有一个API端点/API/v1/xxx,它调用单个控制器和方法 在routes/api.php中,我添加了以下逻辑 if (Auth::guard('api')->guest()) { Route::post('xxx', 'API\v1\XXController@xx'); } else { Route::post('xxx', 'API\v1\XXController@xx')->middleware('auth:api'); } 除了运行compose

因此,我有一个API端点
/API/v1/xxx
,它调用单个控制器和方法

routes/api.php
中,我添加了以下逻辑

if (Auth::guard('api')->guest()) {
    Route::post('xxx', 'API\v1\XXController@xx');
} else {
    Route::post('xxx', 'API\v1\XXController@xx')->middleware('auth:api');
}
除了运行
composer安装
时,其他一切都正常工作,但出现以下错误:

a@b /var/www/html/test/app13 $ composer install
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Nothing to install or update
Generating autoload files
> Illuminate\Foundation\ComposerScripts::postInstall
> php artisan optimize


  [LogicException]                                                             
  Key path "file:///var/www/html/test/app13/storage/oauth-public.key" does not exist or is not readable                                                   


Script php artisan optimize handling the post-install-cmd event returned with error code 1
在运行
composer install
时,删除
routes/api.php
中的行不会输出该^error

我做错了什么

谢谢你的帮助

“关键路径”file:///var/www/html/test/app13/storage/oauth-public.key“不存在或不可读

上面这行说明了一切,您已经安装并启用了
laravel/passport
,但是您忘记了生成密钥

运行命令

php artisan passport:install

它会工作得很好。

感谢您的回复,它不允许我使用该路由启用来运行任何php artisan命令。那么它更简单,注释这些行,运行php artisan passport:install,取消注释这些行并运行composer install我不认为这是一个可能的解决方案,它更像是一个“jugaad”。我希望你会这么想,实际上,当你运行artisan/composer命令时,它会加载所有服务提供商,并验证一些东西,如身份验证、路由,如果路由使用api so passport,你应该在使用api guard之前完成这项工作,我的意思是,实际上这不是“jugaad”或“hack”,这是正确的方法,你刚才跳过的