Я недавно обновил свой проект до Laravel 7 с 5.6. Само обновление прошло без проблем, и проект находится в работоспособном состоянии. Теперь я хочу добавить аутентификацию в проект, чтобы пользователи API могли зарегистрироваться и войти в систему. Регистрация пользователя и логин работает, но как только я использую промежуточное программное обеспечение "auth", я получаю это исключение .
При установке точки останова в строке 68 AuthManager. php и пошагово проходя весь процесс с помощью xDebug, получается, что guard ($ name) вызывается с $ name, установленным в HttpRequest. Что является причиной недопустимого исключения смещения, поскольку метод resol () принимает только строки в качестве параметра.
Я не изменил AuthManager. php
мои маршруты в сети. php:
//Routes for logged in users
//When one of these routes gets called the exception shown above gets thrown
Route::group(['middleware' => ['auth']], function () {
Route::get('/dev/api/developer/home', 'ApiUserController@index')->name('developer.home');
Route::post('/dev/api/developer/requestKey', 'ApiUserController@requestKey')->name('developer.requestKey');
});
мой аутентификатор. php:
<?php
return [
'defaults' => [
'guard' => 'web',
'passwords' => 'users',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
// 'users' => [
// 'driver' => 'database',
// 'table' => 'users',
// ],
],
'passwords' => [
'users' => [
'provider' => 'users',
'email' => 'auth.emails.password',
'table' => 'password_resets',
'expire' => 60,
],
],
];
my Http \ Kernel. php:
<?php
namespace App\Http;
use Illuminate\Auth\Middleware\Authenticate;
use Illuminate\Foundation\Http\Kernel as HttpKernel;
class Kernel extends HttpKernel
{
/**
* The application's global HTTP middleware stack.
*
* These middleware are run during every request to your application.
*
* @var array
*/
protected $middleware = [
\App\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
\App\Http\Middleware\TrustProxies::class,
\Fruitcake\Cors\HandleCors::class,
];
/**
* The application's route middleware groups.
*
* @var array
*/
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\App\Http\Middleware\HttpsProtocol::class
],
'api' => [
'throttle:60,1',
'bindings',
\App\Http\Middleware\VerifyCsrfToken::class,
],
];
/**
* The application's route middleware.
*
* These middleware may be assigned to groups or used individually.
*
* @var array
*/
protected $routeMiddleware = [
'localization' => \App\Http\Middleware\localization::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
];}
Кто-нибудь сталкивался с подобной проблемой? Буду признателен за любую помощь. Если вам нужна дополнительная информация, пожалуйста, сообщите мне. Спасибо всем заранее