我决定使用JWT并从项目中完全删除Laravel Passport。
我试图从composer remove laravel/passport
开始。但是,它没有任何好处:
[Symfony\Component\Debug\Exception\FatalThrowableError]
Class 'Laravel\Passport\Passport' not found
Script @php artisan package:discover handling the post-autoload-dump event returned with error code 1
Removal failed, reverting ./composer.json to its original content.
什么是正确和安全的删除程序?
答案 0 :(得分:18)
您可以手动删除"laravel/passport": "^4.0"
文件中的composer.json
行,然后运行composer update
来删除通行证。
如果您运行的是Laravel 5.4或更低版本,请务必在app.config
文件Laravel\Passport\PassportServiceProvider::class
所有依赖护照的课程也必须进行编辑。最常见的课程是:
User
模型,删除HasApiToken
特征。AuthServiceProvider
,在您的启动方法中删除Passport::routes();
。config/auth.php
,更改api
身份验证答案 1 :(得分:9)
使用 Laravel 7 ,我是这样做的:
第1步。在文件app/Providers/AuthServiceProvider.php
中,删除以下两行:
use Laravel\Passport\Passport;
Passport::routes();
第2步。
$ composer remove laravel/passport
$ rm -r ./resources/js/components/passport # if any
$ rm -r ./resources/views/vendor/passport # if any
第3步。在文件resources/js/app.js
中,删除护照组成部分的注册。如果您在某些地方使用了这些注册组件,也可能会找到并删除它们:
$ grep -rn 'passport-authorized-clients' resources/js/*
$ grep -rn 'passport-personal-access-tokens' resources/js/*
$ grep -rn 'passport-clients' resources/js/*
第4步。从模型中查找并删除HasApiTokens
:
$ grep -rn HasApiTokens *
还删除与之配套的导入行:
use Laravel\Passport\HasApiTokens;
第5步。删除oauth
键
$ rm storage/oauth-*.key
步骤6 。在文件config/auth.php
中,查找guards
:api
:driver
,然后从passport
还原为token
。
步骤7。删除Passport表并清除迁移表
$ php artisan tinker
>>> Schema::drop('oauth_access_tokens');
>>> Schema::drop('oauth_auth_codes');
>>> Schema::drop('oauth_clients');
>>> Schema::drop('oauth_personal_access_clients');
>>> Schema::drop('oauth_refresh_tokens');
>>> DB::table('migrations')->where('migration', 'like', '%_oauth_access_tokens_table')->delete();
>>> DB::table('migrations')->where('migration', 'like', '%_oauth_auth_codes_table')->delete();
>>> DB::table('migrations')->where('migration', 'like', '%_oauth_clients_table')->delete();
>>> DB::table('migrations')->where('migration', 'like', '%_oauth_personal_access_clients_table')->delete();
>>> DB::table('migrations')->where('migration', 'like', '%_oauth_refresh_tokens_table')->delete();
>>> exit
第8步。最后,刷新安装:
$ composer dump-autoload
$ php artisan optimize:clear
$ npm run dev
答案 2 :(得分:2)
按照保罗的步骤进行。删除数据库迁移表中的“ Passport Migrations”并运行命令notEmpty
。