Просто не могу заставить аутентификацию 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
Есть идеи?
РЕДАКТИРОВАТЬ:
Так как кто-то попросил образец кода.
Поместите это в маршруты:
$ app-> get (‘/ api / v1 / users / {id}’, function () {
дд (\ Auth :: пользователь ());
});
Это то, что у меня так далеко, работает, но не совсем так, как мне бы хотелось. Следующее работает для аутентификации на основе токенов, которая является настройкой по умолчанию в 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) {
есть в моем приложении еще.
Ну, я до сих пор не узнал, как изменить тип запроса API через .env
, Но сейчас переключение на token
похоже на работу.
Изменено Auth::viaRequest('api', functi
в Auth::viaRequest('token', funct
,