【问题标题】:Using api route without authentication in Laravel在 Laravel 中使用无需身份验证的 api 路由
【发布时间】:2020-11-26 14:31:48
【问题描述】:

我想简单地从控制器返回一些 JSON 数据,因此我想使用 api 路由。

MyController.php:

public function data()
{
    //return json string
}

该控制器应该被 api 和 web 路由使用,这取决于我的需要。

api.php:

Route::get('data', 'MyController@data');

当我访问路径:/api/data 时,它会将我重定向到 /home

但是,当我将路线更改为以下路线时,它可以工作:

Route::get('data', function() {
    //return json string
});

我不确定它是否与身份验证有关。如您所见,我没有将任何中间件绑定到我的路由。

这里似乎有什么问题?

【问题讨论】:

  • 您如何尝试通过浏览器或 Postman 之类的工具访问该路线?
  • 我只是想从浏览器访问它:http://localhost/api/data
  • 你的构造函数中有中间件吗?
  • 你指的是哪个构造函数?
  • php artisan route:list --path=api 的输出是什么,您的/data 路由在middleware 列中是否包含api 以外的任何内容?

标签: laravel api laravel-routing


【解决方案1】:

如果您的控制器中定义了中间件,请执行此操作

$this->middleware('auth', ['except' => ['yourMethodName']]);

【讨论】:

  • 在哪里可以找到控制器中定义的中间件?
  • 它应该在 _contruct(){ } 构造函数中。像这样的公共函数 __construct()
  • 哦,对了。我现在看到了。我觉得很愚蠢,以前没有注意到它。非常感谢!
猜你喜欢
  • 1970-01-01
  • 2017-12-05
  • 2018-08-27
  • 2021-04-29
  • 2016-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-10
相关资源
最近更新 更多