【问题标题】:Argument 2 passed to Arubacao\BasicAuth\BasicGuard::__construct() must be an instance of Illuminate\Contracts\Auth\UserProvider, null given传递给 Arubacao\BasicAuth\BasicGuard::__construct() 的参数 2 必须是 Illuminate\Contracts\Auth\UserProvider 的实例,给定 null
【发布时间】:2019-08-12 00:37:23
【问题描述】:

一直在尝试将lumen 用于简单轻量级的REST API 界面,使用lumen + arubacao/http-basic-auth-guard composer 包。

我遇到了一个瓶颈问题:Argument 2 passed to Arubacao\BasicAuth\BasicGuard::__construct() must be an instance of Illuminate\Contracts\Auth\UserProvider, null given, called in /Applications/MAMP/htdocs/app.mydomain.com/api/vendor/arubacao/http-basic-auth-guard/src/BasicGuardServiceProvider.php on line 38

config/auth.php 的内容:

return [

    'defaults' => [
        'guard' => env('AUTH_GUARD', 'api'),
    ],

    'guards' => [
        'api' => [
            'driver' => 'basic',
            'provider' => 'users'
        ],

        // ...
    ],

    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model'  => App\User::class
        ],
    ],

    'providers' => [
        //
    ],

    'passwords' => [
        //
    ],

];

bootstrap/app.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->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->routeMiddleware([
    'auth' => App\Http\Middleware\Authenticate::class,
]);

$app->register(App\Providers\AuthServiceProvider::class);
$app->register(Arubacao\BasicAuth\BasicGuardServiceProvider::class);

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

return $app;

*设置与记录的in arubacao/http-basic-auth-guard repo相同

流明版本:5.6.4

【问题讨论】:

  • 你的空提供者数组在这里做什么?
  • @Md.SukelAli:成功了!

标签: php laravel lumen


【解决方案1】:
return [

    'defaults' => [
        'guard' => env('AUTH_GUARD', 'api'),
    ],

    'guards' => [
        'api' => [
            'driver' => 'basic',
            'provider' => 'users'
        ],

        // ...
    ],

    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model'  => App\User::class
        ],
    ],
// This should be removed, it was leftover from the boiler template of lumen repo.
    'providers' => [
        //
    ],

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-11
    • 1970-01-01
    • 1970-01-01
    • 2020-02-04
    • 2020-06-15
    • 2021-12-22
    • 2020-07-02
    • 1970-01-01
    相关资源
    最近更新 更多