Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Laravel Passport: Target [Lcobucci\JWT\Parser] is not instantiable while building [Laravel\Passport\PersonalAccessTokenFactory]

It's my first time trying out this package and I followed the installation guide at https://laravel.com/docs/8.x/passport but when this code block in my controller signup action it throws the error:

$token = $user->createToken('authToken')->accessToken;

Here's the code for my signup action:

public function signup(Request $request){
    $request->validate([
        'name' => 'required',
        'email' => 'required|string|email:rfc,dns|unique:users',
        'password' => 'required|string|confirmed'
    ]);

    $user = new User([
        'name' => $request->name,
        'email' => $request->email,
        'password' => bcrypt($request->password)
    ]);

    $user->save();

    $token = $user->createToken('authToken')->accessToken;

    return response()->json([
        'message' => 'Successfully created user!',
        'access_token' => $token
    ], 201);
}
  • Passport Version: 10.0
  • Laravel Version: 8.16.1
  • PHP Version: 7.4.13
  • Database Driver & Version: MySQL 5.7.24
like image 851
Gams Basallo Avatar asked Nov 26 '20 07:11

Gams Basallo


2 Answers

I found the solution on: https://github.com/laravel/passport/issues/1381.

In composer.json just add "lcobucci/jwt": "3.3.3" and execute composer update.

like image 154
Gams Basallo Avatar answered Oct 22 '22 13:10

Gams Basallo


## Works in Laravel 7
composer require lcobucci/jwt:"^3.0"
like image 20
DEV Tiago França Avatar answered Oct 22 '22 11:10

DEV Tiago França