我决定使用JWT并从项目中完全删除Laravel护照。
我试图从composer remove laravel/passport
开始.但是,它没有好处:
[SymfonyComponentDebugExceptionFatalThrowableError]
Class 'LaravelPassportPassport' 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.
什么是正确和安全的移除程序?
您可以通过手动删除composer.json
文件中的此行"laravel/passport": "^4.0"
来删除护照,然后运行composer update
。
如果您运行的是Laravel 5.4或更低版本,请确保删除app.config
文件中的此行LaravelPassportPassportServiceProvider::class
所有依赖护照的课程也必须进行编辑。最常见的类是:
User
模型中,删除HasApiToken
特征。AuthServiceProvider
,删除引导方法中的Passport::routes();
。- 您的
config/auth.php
,更改驱动程序选项以进行api
身份验证
在Laravel 7中,我是这样做的:
第 1 步。在文件app/Providers/AuthServiceProvider.php
中,删除以下两行:
use LaravelPassportPassport;
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 LaravelPassportHasApiTokens;
第5步。删除oauth
密钥
$ rm storage/oauth-*.key
第 6 步。在文件config/auth.php
中,查找guards
:api
:driver
,然后从passport
恢复到token
。
步骤 7.放下护照表和干净迁移表
$ 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
按照保罗的脚步。删除数据库迁移表中的护照迁移,然后运行命令artisan migrate:refresh
。