在验证请求方面遇到一些问题,laravel Route api.php的行为类似于Route web.php。
我的api路线是:
Route::post('login', 'PassportController@login');
Route::post('register', 'PassportController@register');
Route::middleware('auth:api')->group(function () {
//USERS
Route::get('get-details', 'UserController@getDetails');
});
我配置的所有好的护照都有文档告诉我,并且可以正常工作,但是现在我正在测试我的请求,其中不包含用于验证和错误处理的令牌。
我的路线:
http://localhost:8000/api/get-details
我的用户控制器:
public function getDetails()
{
if(!Auth::check())
{
return response()->json(['error' => 'UnAuthorised'], 401);
}
//Get Auth User
$user = Auth::user();
//Return 404 if user not found
if(is_null($user)){
return response()->json(null,404);
}
return response()->json($user, 200);
}
比起使用邮递员或其他工具,我在没有标记的情况下添加了我的路由,如果没有包含标记,则给我一个json错误消息。但是insted给了我这个错误:
InvalidArgumentException
Route [login] not defined.
我注意到问题出在Midleware Authenticate.php中:
protected function redirectTo($request)
{
if (! $request->expectsJson()) {
return route('login');
}
}
“ expectsJson”在给我错误的地方。我该如何解决该问题?我在网上看到的许多示例都说明了过度使用Request库或注释了返回路线登录,但这对我来说不是一个解决方案,因为在我的情况下,我在同一个App中拥有与我的移动应用进行通信的API路由,一个Web后端来管理信息。
有人可以建议我解决该问题吗?