Laravel Passport api: auth middleware "Имя функции должно быть строкой" - PullRequest
0 голосов
/ 14 января 2020

В настоящее время мы используем Laravel версию 6 и паспорт версии 8.1. Мы испытываем что-то странное при использовании промежуточного программного обеспечения auth:api. Когда мы вызываем промежуточное программное обеспечение, оно всегда возвращает ошибку .

«сообщение»: «Имя функции должно быть строкой», «исключение»: «Symfony \ Component \ Debug \» Исключение \ FatalThrowableError "," file ":" / var / www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php "," line ": 172

Мы пытались отключить все промежуточное ПО, а также вызывать промежуточное ПО всеми возможными способами. При удалении промежуточного программного обеспечения auth:api оно работает отлично, но, разумеется, это бесполезно без аутентификации.

Мы нашли похожую проблему в Laracasts здесь , но без связанного решения. Может быть, кто-то здесь может направить нас в правильном направлении?

1 Ответ

1 голос
/ 17 января 2020

Эта ошибка чаще всего связана с отсутствующим промежуточным программным обеспечением.

Промежуточное программное обеспечение auth должно быть зарегистрировано в App\Http\Kernel:

protected $routeMiddleware = [
    'auth' => \App\Http\Middleware\Authenticate::class,
    // ...
];

\App\Http\Middleware\Authenticate класс должен расширяться \Illuminate\Auth\Middleware\Authenticate, который содержит фактические логики c.

...