jwt-auth icon indicating copy to clipboard operation
jwt-auth copied to clipboard

Illuminate\Contracts\Auth\Guard is not instantiable

Open AugmentBLU opened this issue 7 years ago • 8 comments

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?

AugmentBLU avatar Oct 25 '17 16:10 AugmentBLU

DId anyone solve this issue?

ElijahGM avatar Dec 14 '17 03:12 ElijahGM

also got this issue. Any solution?

vdomah avatar Jul 22 '18 07:07 vdomah

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

kudlohlavec avatar Oct 16 '18 12:10 kudlohlavec

Override the class and pass octobercms class

Kreateyou avatar Oct 16 '18 12:10 Kreateyou

@Kreateyou which classes are you referring to?

kudlohlavec avatar Oct 16 '18 12:10 kudlohlavec

any updates?

AurimasAng avatar Sep 19 '20 08:09 AurimasAng

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.

stale[bot] avatar Dec 25 '20 15:12 stale[bot]

@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"

muhammad-ihsan avatar Jul 17 '21 00:07 muhammad-ihsan