How to uninstall Laravel Passport
With Laravel 7, I did it this way:
Step 1. In the file app/Providers/AuthServiceProvider.php
, remove these two lines:
use Laravel\Passport\Passport;
Passport::routes();
Step 2.
$ composer remove laravel/passport
$ rm -r ./resources/js/components/passport # if any
$ rm -r ./resources/views/vendor/passport # if any
Step 3. In the file resources/js/app.js
, remove passport components registration. You may also find and remove these registered components if you used it somewhere:
$ grep -rn 'passport-authorized-clients' resources/js/*
$ grep -rn 'passport-personal-access-tokens' resources/js/*
$ grep -rn 'passport-clients' resources/js/*
Step 4. Find and remove HasApiTokens
from your models:
$ grep -rn HasApiTokens *
Remove also the import line going with it:
use Laravel\Passport\HasApiTokens;
Step 5. Remove oauth
keys
$ rm storage/oauth-*.key
Step 6. In the file config/auth.php
, look for guards
:api
:driver
and revert from passport
to token
.
Step 7. Drop Passport tables and clean migration table
$ 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
Step 8. And finally, refresh your installation:
$ composer dump-autoload
$ php artisan optimize:clear
$ npm run dev
After following Paul's steps. Remove the Passport Migrations in database migrations table and run command artisan migrate:refresh
.
You can remove passport by manually deleting this line "laravel/passport": "^4.0"
in your composer.json
file then run composer update
.
If you're running Laravel 5.4 or below, make sure to remove this line in your app.config
file Laravel\Passport\PassportServiceProvider::class
And all classes that relies on passport must be edited as well. The most common classes are:
User
model, remove theHasApiToken
trait.AuthServiceProvider
, removePassport::routes();
in your boot method.- Your
config/auth.php
, change your driver option forapi
authentication