如何卸载Laravel Passport

zhe*_*aus 6 laravel composer-php

我决定使用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.
Run Code Online (Sandbox Code Playgroud)

什么是正确和安全的删除程序?

plm*_*nts 20

您可以通过"laravel/passport": "^4.0"composer.json文件中手动删除此行来删除护照,然后运行composer update.

如果您运行的是Laravel 5.4或更低版本,请务必在app.config文件中删除此行Laravel\Passport\PassportServiceProvider::class

所有依赖护照的课程也必须进行编辑.最常见的类是:

  1. User模型,删除HasApiToken特征.
  2. AuthServiceProvider,Passport::routes();在你的启动方法中删除.
  3. 您的config/auth.php,更改驱动程序选项以进行api身份验证

  • `php artisan migrate:refresh` 在步骤结束时运行。删除数据库迁移表中的 Passport 迁移。但请在生产时小心。 (3认同)

Dev*_*hon 16

使用Laravel 7,我是这样做的:

步骤 1.在文件中app/Providers/AuthServiceProvider.php,删除这两行:

use Laravel\Passport\Passport;
Run Code Online (Sandbox Code Playgroud)
Passport::routes();
Run Code Online (Sandbox Code Playgroud)

第2步。

$ composer remove laravel/passport
$ rm -r ./resources/js/components/passport # if any
$ rm -r ./resources/views/vendor/passport # if any
Run Code Online (Sandbox Code Playgroud)

步骤 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/*
Run Code Online (Sandbox Code Playgroud)

步骤 4.HasApiTokens从您的模型中查找并删除:

$ grep -rn HasApiTokens * 
Run Code Online (Sandbox Code Playgroud)

也删除随之而来的导入行:

use Laravel\Passport\HasApiTokens;
Run Code Online (Sandbox Code Playgroud)

步骤 5.删除oauth密钥

$ rm storage/oauth-*.key
Run Code Online (Sandbox Code Playgroud)

步骤6在该文件中config/auth.php,对外观guardsapidriver并恢复从passporttoken

步骤 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
Run Code Online (Sandbox Code Playgroud)

步骤 8.最后,刷新您的安装:

$ composer dump-autoload
$ php artisan optimize:clear
$ npm run dev
Run Code Online (Sandbox Code Playgroud)


小智 9

在跟随保罗的步骤之后。删除数据库迁移表中的 Passport Migrations 并运行命令artisan migrate:refresh

  • 将此添加为保罗回答下的评论 (2认同)