tymondesigns / jwt-auth

🔐 JSON Web Token Authentication for Laravel & Lumen
https://jwt-auth.com
MIT License
11.24k stars 1.55k forks source link

Illuminate\Contracts\Auth\Guard is not instantiable #1360

Open AugmentBLU opened 6 years ago

AugmentBLU commented 6 years ago

Hello,

I'm having issues trying to integrate JWT-Auth with October CMS which uses Laravel 5.5. I am getting the following error whenever I try to use a route with JWT-Auth.

Target [Illuminate\Contracts\Auth\Guard] is not instantiable while building [Tymon\JWTAuth\Providers\Auth\Illuminate].

I have tried both the 1.0.0-rc.1 and the dev-develop branch but both give the same error.

My integration is

App::register(\Tymon\JWTAuth\Providers\LaravelServiceProvider::class);
$alias = AliasLoader::getInstance();
$alias->alias('JWTAuth', \Tymon\JWTAuth\Facades\JWTAuth::class);
$alias->alias('JWTFactory', \Tymon\JWTAuth\Facades\JWTFactory::class);

App::singleton('auth', function ($app) {
    return new \Illuminate\Auth\AuthManager($app);
});

$this->app['router']->middleware('jwt.auth', '\Tymon\JWTAuth\Middleware\GetUserFromToken');
$this->app['router']->middleware('jwt.refresh', '\Tymon\JWTAuth\Middleware\RefreshToken');

Routes

Route::group(['prefix' => 'api'], function()
{
    Route::post('auth/login', '\Path_to_Controllers\Controllers\ApiAuth@authenticate');
});

ApiAuth Contoller

use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Tymon\JWTAuth\Exceptions\JWTException;
use JWTAuth;

class ApiAuth extends Controller
{
    public function authenticate(Request $request)
    {
        $credentials = $request->only('email', 'password');

        try {
            // verify the credentials and create a token for the user
            if (! $token = JWTAuth::attempt($credentials)) {
                return response()->json(['error' => 'invalid_credentials'], 401);
            }
        } catch (JWTException $e) {
            // something went wrong
            return response()->json(['error' => 'could_not_create_token'], 500);
        }
        // if no errors are encountered we can return a JWT
        return response()->json(compact('token'));
    }
}

Stack Trace

Illuminate\Contracts\Container\BindingResolutionException: Target [Illuminate\Contracts\Auth\Guard] is not instantiable while building [Tymon\JWTAuth\Providers\Auth\Illuminate]. in /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Container/Container.php:918
Stack trace:
#0 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Container/Container.php(758): Illuminate\Container\Container->notInstantiable('Illuminate\\Cont...')
#1 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Container/Container.php(631): Illuminate\Container\Container->build('Illuminate\\Cont...')
#2 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Container/Container.php(586): Illuminate\Container\Container->resolve('Illuminate\\Cont...', Array)
#3 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(721): Illuminate\Container\Container->make('Illuminate\\Cont...', Array)
#4 /home/vagrant/website/vendor/october/rain/src/Foundation/Application.php(162): Illuminate\Foundation\Application->make('Illuminate\\Cont...')
#5 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Container/Container.php(885): October\Rain\Foundation\Application->make('Illuminate\\Cont...')
#6 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Container/Container.php(813): Illuminate\Container\Container->resolveClass(Object(ReflectionParameter))
#7 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Container/Container.php(779): Illuminate\Container\Container->resolveDependencies(Array)
#8 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Container/Container.php(631): Illuminate\Container\Container->build('Tymon\\JWTAuth\\P...')
#9 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Container/Container.php(586): Illuminate\Container\Container->resolve('Tymon\\JWTAuth\\P...', Array)
#10 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(721): Illuminate\Container\Container->make('Tymon\\JWTAuth\\P...', Array)
#11 /home/vagrant/website/vendor/october/rain/src/Foundation/Application.php(162): Illuminate\Foundation\Application->make('Tymon\\JWTAuth\\P...')
#12 /home/vagrant/website/vendor/tymon/jwt-auth/src/Providers/AbstractServiceProvider.php(337): October\Rain\Foundation\Application->make('Tymon\\JWTAuth\\P...')
#13 /home/vagrant/website/vendor/tymon/jwt-auth/src/Providers/AbstractServiceProvider.php(150): Tymon\JWTAuth\Providers\AbstractServiceProvider->getConfigInstance('providers.auth')
#14 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Container/Container.php(749): Tymon\JWTAuth\Providers\AbstractServiceProvider->Tymon\JWTAuth\Providers\{closure}(Object(October\Rain\Foundation\Application), Array)
#15 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Container/Container.php(631): Illuminate\Container\Container->build(Object(Closure))
#16 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Container/Container.php(586): Illuminate\Container\Container->resolve('tymon.jwt.provi...', Array)
#17 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(721): Illuminate\Container\Container->make('tymon.jwt.provi...', Array)
#18 /home/vagrant/website/vendor/october/rain/src/Foundation/Application.php(162): Illuminate\Foundation\Application->make('tymon.jwt.provi...')
#19 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Container/Container.php(1195): October\Rain\Foundation\Application->make('tymon.jwt.provi...')
#20 /home/vagrant/website/vendor/tymon/jwt-auth/src/Providers/AbstractServiceProvider.php(235): Illuminate\Container\Container->offsetGet('tymon.jwt.provi...')
#21 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Container/Container.php(749): Tymon\JWTAuth\Providers\AbstractServiceProvider->Tymon\JWTAuth\Providers\{closure}(Object(October\Rain\Foundation\Application), Array)
#22 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Container/Container.php(631): Illuminate\Container\Container->build(Object(Closure))
#23 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Container/Container.php(586): Illuminate\Container\Container->resolve('tymon.jwt.auth', Array)
#24 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(721): Illuminate\Container\Container->make('tymon.jwt.auth', Array)
#25 /home/vagrant/website/vendor/october/rain/src/Foundation/Application.php(162): Illuminate\Foundation\Application->make('tymon.jwt.auth')
#26 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Container/Container.php(1195): October\Rain\Foundation\Application->make('tymon.jwt.auth')
#27 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(159): Illuminate\Container\Container->offsetGet('tymon.jwt.auth')
#28 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(128): Illuminate\Support\Facades\Facade::resolveFacadeInstance('tymon.jwt.auth')
#29 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(215): Illuminate\Support\Facades\Facade::getFacadeRoot()
#30 /home/vagrant/website/plugins/isa/surveyor/controllers/ApiAuth.php(17): Illuminate\Support\Facades\Facade::__callStatic('attempt', Array)
#31 [internal function]: My_App\Controllers\ApiAuth->authenticate(Object(Illuminate\Http\Request))
#32 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): call_user_func_array(Array, Array)
#33 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\Routing\Controller->callAction('authenticate', Array)
#34 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Routing/Route.php(212): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(My_App\Controllers\ApiAuth), 'authenticate')
#35 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Routing/Route.php(169): Illuminate\Routing\Route->runController()
#36 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Routing/Router.php(645): Illuminate\Routing\Route->run()
#37 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(30): Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#38 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(102): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#39 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Routing/Router.php(647): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#40 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Routing/Router.php(622): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#41 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Routing/Router.php(588): Illuminate\Routing\Router->runRoute(Object(Illuminate\Http\Request), Object(Illuminate\Routing\Route))
#42 /home/vagrant/website/vendor/october/rain/src/Router/CoreRouter.php(20): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#43 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(176): October\Rain\Router\CoreRouter->dispatch(Object(Illuminate\Http\Request))
#44 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(30): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#45 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(46): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#46 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure))
#47 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#48 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(102): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#49 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(151): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#50 /home/vagrant/website/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(116): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#51 /home/vagrant/website/index.php(43): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))

Any idea what could cause the Illuminate\Contracts\Auth\Guard] is not instantiable error?

ElijahGM commented 6 years ago

DId anyone solve this issue?

vdomah commented 5 years ago

also got this issue. Any solution?

kudlohlavec commented 5 years ago

Same problem here, have you managed to find any solution?

Kreateyou commented 5 years ago

Override the class and pass octobercms class

kudlohlavec commented 5 years ago

@Kreateyou which classes are you referring to?

AurimasAng commented 3 years ago

any updates?

stale[bot] commented 3 years ago

Is this still relevant? If so, what is blocking it? Is there anything you can do to help move it forward?

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

muhammad-ihsan commented 3 years ago

@AugmentBLU did you find the solutions? i have some problem like this using octobercms, composer.json file:

"php": ">=7.2",
"october/rain": "1.1.*",
"october/system": "1.1.*",
"october/backend": "1.1.*",
"october/cms": "1.1.*",
"laravel/framework": "~6.0",
"wikimedia/composer-merge-plugin": "dev-feature/composer-v2 as 1.5.0",
"maatwebsite/excel": "^3.1",
"tymon/jwt-auth": "dev-develop"