Laravel Passport Route [login] not defined

前端 未结 6 1187
傲寒
傲寒 2021-02-19 07:36

i use Laravel passport for auth

in route api.php

Route::get(\'/todos\', function(){
  return \'hello\';
})->middleware(\'auth:api\');
6条回答
  •  暗喜
    暗喜 (楼主)
    2021-02-19 08:00

    In the following of @Eki answer,

    This error is because you didn't set "Accept" field in your headers.

    To avoid this error, add a middleware with priority to Authenticate to check that:

    1. add an extra middleware with below handler

      public function handle($request, Closure $next)
      {
          if(!in_array($request->headers->get('accept'), ['application/json', 'Application/Json']))
              return response()->json(['message' => 'Unauthenticated.'], 401);
      
          return $next($request);
      }
      
    2. set priority in app/Http/Kernel.php

      protected $middlewarePriority = [
          ...
          \App\Http\Middleware\MyMiddleware::class, // new middleware
          \App\Http\Middleware\Authenticate::class,
          ...
      ];
      
    3. add new middleware to your route

      Route::get('/todos', function(){
          return 'hello';
      })->middleware('MyMiddleware', 'auth:api');
      

提交回复
热议问题