Laravel 同时使用web和令牌api gaurd时的异常处理
使用laravel5.8。使用web和APIToken Gaurd。 使用带有无效api_令牌参数的api调用时,接收到错误路由:未定义登录。我想要JSON格式的响应。在论坛中阅读,我需要在app\Exceptions\Handler.php中使用下面的方法,它可以工作。我有一些路径的web gaurd。我希望路径:当它是web gaurd时登录工作,当使用api gaurd时返回json响应。我如何在Laravel 5.8中做到这一点Laravel 同时使用web和令牌api gaurd时的异常处理,laravel,Laravel,使用laravel5.8。使用web和APIToken Gaurd。 使用带有无效api_令牌参数的api调用时,接收到错误路由:未定义登录。我想要JSON格式的响应。在论坛中阅读,我需要在app\Exceptions\Handler.php中使用下面的方法,它可以工作。我有一些路径的web gaurd。我希望路径:当它是web gaurd时登录工作,当使用api gaurd时返回json响应。我如何在Laravel 5.8中做到这一点 public function render($req
public function render($request, Exception $exception)
{
// dd(get_class($exception));
// return parent::render($request, $exception);
return response()->json(
[
'errors' => [
'status' => 401,
'message' => 'Unauthenticated',
]
], 401
);
}
我把逻辑放在未经验证的函数中,结合expectsJson应该可以解决您的问题
// in app\Exceptions\Handler.php
public function render($request, Exception $exception)
{
return parent::render($request, $exception);
}
protected function unauthenticated($request, AuthenticationException $exception)
{
if ($request->expectsJson()) {
return response()->json(['status' => 401,'message' => 'Unauthenticated.'], 401);
}
return redirect()->guest('/');
}
谢谢你的信息。当我使用无效的api_令牌参数调用api时,它不会调用未经身份验证的方法。在Laravel 5.8中,使用api_令牌的api身份验证方法是新的。我的答案是使用Laravel Passport进行Laravel API身份验证