marvinjudehk's avatar

lumen-passport throws FatalThrowableError

i followed all the steps in the docs but i can't still get lumen passport to work, i keep getting this error:

(1/1) FatalThrowableError
    Call to undefined method Laravel\Lumen\Application::group()

my routes/web.php looks like so

<?php

$router->get('/', function () use ($router) {
    return $router->app->version();
});

 $router->group(['middleware' => 'auth:api'], function () use ($router) {
    $router->get('/user', 'UsersController@all');
    $router->get('/user/{id}', 'UsersController@get');
    $router->post('/user', 'UsersController@add');
    $router->put('/user/{id}', 'UsersController@put');
    $router->delete('/user/{id}', 'UsersController@remove');
});

my app/provider/AuthServiceProvider.php

    public function boot()
    {
   
              LumenPassport::routes($this->app);
    }
}

my bootstrap/web.php looks like this

<?php

require_once __DIR__.'/../vendor/autoload.php';

try {
    (new Dotenv\Dotenv(__DIR__.'/../'))->load();
} catch (Dotenv\Exception\InvalidPathException $e) {
    //
}



$app = new Laravel\Lumen\Application(
    realpath(__DIR__.'/../')
);

$app->configure('auth');

$app->withFacades();

$app->withEloquent();



$app->singleton(
    Illuminate\Contracts\Debug\ExceptionHandler::class,
    App\Exceptions\Handler::class
);

$app->singleton(
    Illuminate\Contracts\Console\Kernel::class,
    App\Console\Kernel::class
);



// $app->middleware([
//    App\Http\Middleware\ExampleMiddleware::class
// ]);

$app->routeMiddleware([
    'auth' => App\Http\Middleware\Authenticate::class,
]);



$app->register(App\Providers\AppServiceProvider::class);
// $app->register(App\Providers\AuthServiceProvider::class);
// $app->register(App\Providers\EventServiceProvider::class);

$app->register(Laravel\Passport\PassportServiceProvider::class);
$app->register(Dusterio\LumenPassport\PassportServiceProvider::class);

Dusterio\LumenPassport\LumenPassport::routes($app);
Dusterio\LumenPassport\LumenPassport::routes($app, ['prefix'=> 'api/v1']);



$app->router->group([
    'namespace' => 'App\Http\Controllers',
], function ($router) {
    require __DIR__.'/../routes/web.php';
});

return $app;

config/auth.php

<?php 
return
[ 'defaults' => [
        'guard' => 'api',
        'passwords' => 'users',
    ],
 
    'guards' => [
        'api' => [
            'driver' => 'passport',
            'provider' => 'users',
        ],
    ],
 
    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => \App\Models\User::class
        ]
    ]
];
0 likes
1 reply
okusax's avatar

remove

Dusterio\LumenPassport\LumenPassport::routes($app);
Dusterio\LumenPassport\LumenPassport::routes($app, ['prefix'=> 'api/v1']);

from bootstrap/app.php, the routes are loaded when you run

LumenPassport::routes($this->app);

in app/provider/AuthServiceProvider.php

Please or to participate in this conversation.