Аутентификация люмена

Просто не могу заставить аутентификацию Lumen работать вообще.

У меня свежая установка и я пытаюсь следовать документам здесь:

https://lumen.laravel.com/docs/5.2/authentication

Я раскомментировал AuthProvider линия в app.php файл (вместе со всем остальным, фасад и т. д.). Тогда в простом контроллере я просто делаю dd(Auth::use()),

Я просто не могу обойти эту ошибку:

Undefined index: provider
in AuthManager.php line 152
at Application->Laravel\Lumen\Concerns\{closure}('8', 'Undefined index: provider', '/home/vagrant/Code/gryd/api.gryd.com/vendor/illuminate/auth/AuthManager.php', '152', array('name' => 'api', 'config' => array('driver' => 'token'))) in AuthManager.php line 152

Есть идеи?

РЕДАКТИРОВАТЬ:

Так как кто-то попросил образец кода.

  1. Установить люмен
  2. Раскомментируйте все в app.php
  3. Поместите это в маршруты:

    $ app-> get (‘/ api / v1 / users / {id}’, function () {
    дд (\ Auth :: пользователь ());
    });

5

Решение

Это то, что у меня так далеко, работает, но не совсем так, как мне бы хотелось. Следующее работает для аутентификации на основе токенов, которая является настройкой по умолчанию в Lumen.

Включить аутентификацию

регистр routeMiddleware а также AuthServiceProvider откомментировав следующие строки в bootstrap/app.php,

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

а также

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

конфигурация

копия vendor/laravel/lumen-framework/config/auth.php в config/auth.php, Создать рут config папка, если вам нужно.

Внутри мы найдем четыре предмета (defaults, guards, providers, passwords). Мы занимаемся первыми тремя.

Сначала мы называем по умолчанию охрана как азбука.

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

Далее мы определяем ABC охрану с token как его Водитель а также XYZ как его поставщик.

'guards' => [
'ABC' => [
'driver' => 'token',
'provider' => 'XYZ'
],
],

И провайдер XYZ определяется с eloquent как Водитель а также App\User::class как модель.

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

Завершение настройки

Наконец, мы используем auth промежуточное ПО в нашей настройке маршрутизации, как обычно.

$app->group(['middleware' => 'auth'], function () use ($app) {

Так вот что запускает и запускает токен. Он использует api_token поле в таблице пользователей для аутентификации, которое можно найти в TokenGuard,

Я до сих пор не выяснил, какой эффект AuthServiceProvider а также $this->app['auth']->viaRequest('api', function ($request) { есть в моем приложении еще.

7

Другие решения

Ну, я до сих пор не узнал, как изменить тип запроса API через .env, Но сейчас переключение на token похоже на работу.

Изменено Auth::viaRequest('api', functi в Auth::viaRequest('token', funct,

2

По вопросам рекламы [email protected]