Jwt-auth: Does not work with Lumen 5.4

Created on 9 Mar 2017  路  2Comments  路  Source: tymondesigns/jwt-auth

I'm using Lumen v5.4.5 with JWTAuth 1.0.0-beta.2 and getting the following error:

Undefined index: provider in /var/www/html/vendor/tymon/jwt-auth/src/Providers/AbstractServiceProvider.php:80

I am trying to access the login method within my Controller that looks like:

public function login(Request $request) {
    // grab credentials from the request
    $credentials = $request->only('email', 'password');
    $token = app(JWTAuth::class)->attempt($credentials);
}

My bootstrap/app.php file looks like:

$app->alias('cache', 'Illuminate\Cache\CacheManager');
$app->alias('auth', 'Illuminate\Auth\AuthManager');
...
$app->configure('auth');
$app->configure('jwt');
...
$app->register(App\Providers\AuthServiceProvider::class);
$app->register(Tymon\JWTAuth\Providers\LumenServiceProvider::class);

In my config/ folder I have auth.php:

    'guards' => [
        'api' => ['driver' => 'jwt'],
    ],

and jwt.php which is basically the default config file that comes with JWTAuth library.

Following is the full stack trace of the error:

{
  "error": {
    "message": "Undefined index: provider",
    "status_code": 500,
    "debug": {
      "line": 80,
      "file": "/var/www/html/vendor/tymon/jwt-auth/src/Providers/AbstractServiceProvider.php",
      "class": "ErrorException",
      "trace": [
        "#0 /var/www/html/vendor/tymon/jwt-auth/src/Providers/AbstractServiceProvider.php(80): Laravel\\Lumen\\Application->Laravel\\Lumen\\Concerns\\{closure}(8, 'Undefined index...', '/var/www/html/v...', 80, Array)",
        "#1 /var/www/html/vendor/illuminate/auth/AuthManager.php(111): Tymon\\JWTAuth\\Providers\\AbstractServiceProvider->Tymon\\JWTAuth\\Providers\\{closure}(Object(Laravel\\Lumen\\Application), 'api', Array)",
        "#2 /var/www/html/vendor/illuminate/auth/AuthManager.php(90): Illuminate\\Auth\\AuthManager->callCustomCreator('api', Array)",
        "#3 /var/www/html/vendor/illuminate/auth/AuthManager.php(70): Illuminate\\Auth\\AuthManager->resolve('api')",
        "#4 /var/www/html/vendor/illuminate/auth/AuthServiceProvider.php(45): Illuminate\\Auth\\AuthManager->guard()",
        "#5 /var/www/html/vendor/illuminate/container/Container.php(678): Illuminate\\Auth\\AuthServiceProvider->Illuminate\\Auth\\{closure}(Object(Laravel\\Lumen\\Application))",
        "#6 /var/www/html/vendor/illuminate/container/Container.php(565): Illuminate\\Container\\Container->build(Object(Closure))",
        "#7 /var/www/html/vendor/laravel/lumen-framework/src/Application.php(208): Illuminate\\Container\\Container->make('auth.driver')",
        "#8 /var/www/html/vendor/illuminate/container/Container.php(771): Laravel\\Lumen\\Application->make('auth.driver')",
        "#9 /var/www/html/vendor/illuminate/container/Container.php(733): Illuminate\\Container\\Container->resolveClass(Object(ReflectionParameter))",
        "#10 /var/www/html/vendor/illuminate/container/Container.php(708): Illuminate\\Container\\Container->resolveDependencies(Array)",
        "#11 /var/www/html/vendor/illuminate/container/Container.php(565): Illuminate\\Container\\Container->build('Tymon\\\\JWTAuth\\\\P...')",
        "#12 /var/www/html/vendor/laravel/lumen-framework/src/Application.php(208): Illuminate\\Container\\Container->make('Tymon\\\\JWTAuth\\\\P...')",
        "#13 /var/www/html/vendor/tymon/jwt-auth/src/Providers/AbstractServiceProvider.php(321): Laravel\\Lumen\\Application->make('Tymon\\\\JWTAuth\\\\P...')",
        "#14 /var/www/html/vendor/tymon/jwt-auth/src/Providers/AbstractServiceProvider.php(134): Tymon\\JWTAuth\\Providers\\AbstractServiceProvider->getConfigInstance('providers.auth')",
        "#15 /var/www/html/vendor/illuminate/container/Container.php(678): Tymon\\JWTAuth\\Providers\\AbstractServiceProvider->Tymon\\JWTAuth\\Providers\\{closure}(Object(Laravel\\Lumen\\Application))",
        "#16 /var/www/html/vendor/illuminate/container/Container.php(565): Illuminate\\Container\\Container->build(Object(Closure))",
        "#17 /var/www/html/vendor/laravel/lumen-framework/src/Application.php(208): Illuminate\\Container\\Container->make('tymon.jwt.provi...')",
        "#18 /var/www/html/vendor/illuminate/container/Container.php(1070): Laravel\\Lumen\\Application->make('tymon.jwt.provi...')",
        "#19 /var/www/html/vendor/tymon/jwt-auth/src/Providers/AbstractServiceProvider.php(219): Illuminate\\Container\\Container->offsetGet('tymon.jwt.provi...')",
        "#20 /var/www/html/vendor/illuminate/container/Container.php(678): Tymon\\JWTAuth\\Providers\\AbstractServiceProvider->Tymon\\JWTAuth\\Providers\\{closure}(Object(Laravel\\Lumen\\Application))",
        "#21 /var/www/html/vendor/illuminate/container/Container.php(565): Illuminate\\Container\\Container->build(Object(Closure))",
        "#22 /var/www/html/vendor/laravel/lumen-framework/src/Application.php(208): Illuminate\\Container\\Container->make('tymon.jwt.auth')",
        "#23 /var/www/html/vendor/laravel/lumen-framework/src/helpers.php(38): Laravel\\Lumen\\Application->make('tymon.jwt.auth')",
        "#24 /var/www/html/app/Http/Controllers/ViewerController.php(90): app('Tymon\\\\JWTAuth\\\\J...')",
        "#25 [internal function]: App\\Http\\Controllers\\ViewerController->login(Object(Dingo\\Api\\Http\\Request))",
        "#26 /var/www/html/vendor/illuminate/container/BoundMethod.php(28): call_user_func_array(Array, Array)",
        "#27 /var/www/html/vendor/illuminate/support/helpers.php(912): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()",
        "#28 /var/www/html/vendor/illuminate/container/BoundMethod.php(86): value(Object(Closure))",
        "#29 /var/www/html/vendor/illuminate/container/BoundMethod.php(30): Illuminate\\Container\\BoundMethod::callBoundMethod(Object(Laravel\\Lumen\\Application), Array, Object(Closure))",
        "#30 /var/www/html/vendor/illuminate/container/Container.php(524): Illuminate\\Container\\BoundMethod::call(Object(Laravel\\Lumen\\Application), Array, Array, NULL)",
        "#31 /var/www/html/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(741): Illuminate\\Container\\Container->call(Array, Array)",
        "#32 /var/www/html/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(707): Laravel\\Lumen\\Application->callControllerCallable(Array, Array)",
        "#33 /var/www/html/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(681): Laravel\\Lumen\\Application->callLumenController(Object(App\\Http\\Controllers\\ViewerController), 'login', Array)",
        "#34 /var/www/html/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(643): Laravel\\Lumen\\Application->callControllerAction(Array)",
        "#35 /var/www/html/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(623): Laravel\\Lumen\\Application->callActionOnArrayBasedRoute(Array)",
        "#36 [internal function]: Laravel\\Lumen\\Application->Laravel\\Lumen\\Concerns\\{closure}(Object(Dingo\\Api\\Http\\Request))",
        "#37 /var/www/html/vendor/laravel/lumen-framework/src/Routing/Pipeline.php(52): call_user_func(Object(Closure), Object(Dingo\\Api\\Http\\Request))",
        "#38 /var/www/html/vendor/barryvdh/laravel-cors/src/HandleCors.php(42): Laravel\\Lumen\\Routing\\Pipeline->Laravel\\Lumen\\Routing\\{closure}(Object(Dingo\\Api\\Http\\Request))",
        "#39 /var/www/html/vendor/illuminate/pipeline/Pipeline.php(148): Barryvdh\\Cors\\HandleCors->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))",
        "#40 [internal function]: Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))",
        "#41 /var/www/html/vendor/laravel/lumen-framework/src/Routing/Pipeline.php(32): call_user_func(Object(Closure), Object(Dingo\\Api\\Http\\Request))",
        "#42 /var/www/html/vendor/illuminate/pipeline/Pipeline.php(102): Laravel\\Lumen\\Routing\\Pipeline->Laravel\\Lumen\\Routing\\{closure}(Object(Dingo\\Api\\Http\\Request))",
        "#43 /var/www/html/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(778): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))",
        "#44 /var/www/html/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(624): Laravel\\Lumen\\Application->sendThroughPipeline(Array, Object(Closure))",
        "#45 /var/www/html/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(528): Laravel\\Lumen\\Application->handleFoundRoute(Array)",
        "#46 /var/www/html/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(781): Laravel\\Lumen\\Application->Laravel\\Lumen\\Concerns\\{closure}()",
        "#47 /var/www/html/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(534): Laravel\\Lumen\\Application->sendThroughPipeline(Array, Object(Closure))",
        "#48 /var/www/html/vendor/dingo/api/src/Routing/Adapter/Lumen.php(103): Laravel\\Lumen\\Application->dispatch(Object(Dingo\\Api\\Http\\Request))",
        "#49 /var/www/html/vendor/dingo/api/src/Routing/Router.php(513): Dingo\\Api\\Routing\\Adapter\\Lumen->dispatch(Object(Dingo\\Api\\Http\\Request), 'v1')",
        "#50 /var/www/html/vendor/dingo/api/src/Http/Middleware/Request.php(126): Dingo\\Api\\Routing\\Router->dispatch(Object(Dingo\\Api\\Http\\Request))",
        "#51 /var/www/html/vendor/illuminate/pipeline/Pipeline.php(114): Dingo\\Api\\Http\\Middleware\\Request->Dingo\\Api\\Http\\Middleware\\{closure}(Object(Dingo\\Api\\Http\\Request))",
        "#52 /var/www/html/vendor/barryvdh/laravel-cors/src/HandlePreflightSimple.php(25): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))",
        "#53 /var/www/html/vendor/illuminate/pipeline/Pipeline.php(148): Barryvdh\\Cors\\HandlePreflightSimple->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))",
        "#54 /var/www/html/vendor/illuminate/pipeline/Pipeline.php(102): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))",
        "#55 /var/www/html/vendor/dingo/api/src/Http/Middleware/Request.php(127): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))",
        "#56 /var/www/html/vendor/dingo/api/src/Http/Middleware/Request.php(103): Dingo\\Api\\Http\\Middleware\\Request->sendRequestThroughRouter(Object(Dingo\\Api\\Http\\Request))",
        "#57 /var/www/html/vendor/illuminate/pipeline/Pipeline.php(148): Dingo\\Api\\Http\\Middleware\\Request->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))",
        "#58 [internal function]: Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))",
        "#59 /var/www/html/vendor/laravel/lumen-framework/src/Routing/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))",
        "#60 /var/www/html/vendor/illuminate/pipeline/Pipeline.php(102): Laravel\\Lumen\\Routing\\Pipeline->Laravel\\Lumen\\Routing\\{closure}(Object(Illuminate\\Http\\Request))",
        "#61 /var/www/html/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(778): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))",
        "#62 /var/www/html/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(534): Laravel\\Lumen\\Application->sendThroughPipeline(Array, Object(Closure))",
        "#63 /var/www/html/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php(475): Laravel\\Lumen\\Application->dispatch(NULL)",
        "#64 /var/www/html/public/index.php(28): Laravel\\Lumen\\Application->run()",
        "#65 {main}"
      ]
    }
  }
}

All 2 comments

Works like a charm with lumen 5.4 just for the reference follow this guide:
http://www.akaita.com/post/json-web-token-authentication-for-lumen-5-tymon-jwt-auth/

@akkhan20 dead link

Was this page helpful?
0 / 5 - 0 ratings

Related issues

johncloud200 picture johncloud200  路  3Comments

therealmjk picture therealmjk  路  3Comments

loic-lopez picture loic-lopez  路  3Comments

CBR09 picture CBR09  路  3Comments

marciomansur picture marciomansur  路  3Comments