【问题标题】:Middleware auth redirects api routes to /home中间件身份验证将 api 路由重定向到 /home
【发布时间】:2019-06-30 01:59:53
【问题描述】:

我创建了 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

【问题讨论】:

    标签: php laravel api routing


    【解决方案1】:
    【解决方案2】:

    当路由放置在api.php 中时,如果您通过网站会话登录,它将不起作用。实际上它会寻找你现在没有发送的 API 令牌。

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

    然后异常处理程序接受此异常,检查您的请求 并看到它没有在它期望 JSON 的标头中指定。 如果它期待 JSON,你会看到一个 JSON 响应说 未经身份验证。由于它不期望 JSON,因此它重定向到 登录页面,该页面重定向到 /home,因为您通过 会议。令人困惑,但我想这就是原因。

    如果你想玩你的游戏,你需要使用像 Postman 这样的工具 API 端点,以便您可以在请求中指定所需的标头。

    更多详情请访问here

    【讨论】:

    • 不,仍然重定向。我使用标题Authorization : Basic my_tokenprnt.sc/mh9wxu
    • 尝试使用 auth 中间件,而不是 auth:api
    • 仍然重定向。
    • 邮递员将我的令牌x5kxNGTgSQyzYqRX59kun96tChATOiFKKgQi1N18lffv8GeEyurzmmHYmxku 转换为YWFnejo=
    猜你喜欢
    • 2018-07-25
    • 2021-08-09
    • 2018-05-16
    • 1970-01-01
    • 2017-02-25
    • 1970-01-01
    • 2019-02-09
    • 2018-12-27
    • 2021-06-28
    相关资源
    最近更新 更多