我正在使用laravel api,它严格处理ajax请求。 成功登录后,客户端将收到顺序请求的Laravel护照令牌。
api的路由仅返回经过身份验证的用户的详细信息:
Route::group(['middleware' => 'auth:api'], function() {
Route::post('/user/details', 'API\UserController@details');
});
// in UserController...
public function details() {
$user = Auth::user();
return response()->json([
'user' => $user
], 201);
}
当我使用邮差测试我的api时,如果我添加以下内容,则会收到此响应:
{接受:application / json,授权:“承载者” + LARAVEL_PASSPORT_TOKEN}
到请求标头:
但如果我的标题中仅包含{Accept:application / json}。 这会给我一个正常的Json未经身份验证的响应。
因此,如果有人知道发生了什么并为我提供一些见解,那将是很好的。
先谢谢了。
答案 0 :(得分:0)
我认为您遵循
这样的路线Route::get('/login','ApiController@accessToken');
Route::group(['middleware' => ['web','auth:api']], function()
{
Route::post('/todo/','ApiController@store');
Route::get('/todo/','ApiController@index');
Route::get('/todo/{todo}','ApiController@show');
Route::put('/todo/{todo}','ApiController@update');
Route::delete('/todo/{todo}','ApiController@destroy');
});
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
有关更多信息,请访问文章:Create A REST API in Laravel With Authentication Using Passport