laravel - 具有护照验证和错误处理的 API
问题描述
我在验证请求时遇到了一些问题,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);
}
与使用 Postman 或其他工具相比,我在没有令牌的情况下添加了我的路由,如果不包含令牌,则给我一条 json 错误消息。但是 insted 给了我这个错误:
InvalidArgumentException
Route [login] not defined.
我注意到问题出在中间件 Authenticate.php 中:
protected function redirectTo($request)
{
if (! $request->expectsJson()) {
return route('login');
}
}
'expectsJson' 给了我错误的地方。我该如何解决这个问题?我在网上看到的许多示例都告诉覆盖请求库或评论返回路由登录,但这对我来说不是一个解决方案,因为在我的情况下,我在同一个应用程序中拥有我的移动应用程序与之通信的 API 路由,然后我有用于管理信息的 Web 后端。
有人可以建议我如何解决这个问题吗?
解决方案
推荐阅读
- r - 确定在 R 中掷骰子两次的所有结果的概率
- javascript - 如何使用 Discord.js 显示 .JSON 文件的内容?
- javascript - 如何将 module.exports 转换为 json 以用于 gulp 任务?
- javascript - 在输入法中输入文字后,搜索图标不可点击
- excel - 如何使用 pastespecial 转换 Application.Transpose 以仅放置值而不放置格式?
- c - 对 int 数组使用置换 (C)
- java - 使用 BroadcastReceiver 下载后打开文件
- objective-c - 等待 NSURLSESSION 数据在 CGRect Graph 中使用
- algorithm - 创建一个检查图是否连接的算法
- excel - VBA:For循环在For块外执行代码