中间件身份验证将api路由重定向到/ home

时间:2019-02-06 06:56:38

标签: php laravel api routing

我创建了api路由:

文件routes/api.php:

Route::middleware('auth:api')->get('/user', 
function (Request $request) {
    return $request->user();
});

Route::middleware('auth:api')->group(function() 
{
    Route::get('/tasks','TaskController@index');
});

此后,我转到/api/tasks,中间件重定向到/ home,使用/ api / tasks而不重定向到/ home(我已登录)该怎么办,并且我也可以使用此中间件?

Laravel 5.5

2 个答案:

答案 0 :(得分:2)

将路线放置在api.php中时,如果您通过会话登录网站则无法使用。实际上,它将寻找您现在不发送的API令牌。

  

如果您通过网站上的会话登录,只需点击API   端点不在您的浏览器中将无法使用。它不会检查   会话以查看您是否已登录,它将在寻找API   令牌与请求。由于您未指定令牌,因此   抛出AuthenticationException。

     

然后,异常处理程序接受此异常,检查您的请求   并发现它没有在期望JSON的标头中指定。   如果期望使用JSON,您会看到一个JSON响应,内容为   未经验证。由于不需要JSON,因此将其重定向到   登录页面,由于您通过   会议。令人困惑,但是我希望那是原因。

     

如果您想玩自己的游戏,则需要使用Postman之类的工具   API端点,因此您可以在请求中指定所需的标头。

有关更多详细信息,请访问here

答案 1 :(得分:0)