【问题标题】:Problems with curl requests for RESTful API - Laravel 5.4RESTful API 的 curl 请求问题 - Laravel 5.4
【发布时间】:2017-07-08 07:54:37
【问题描述】:

我正在尝试使用 Laravel 创建一个 RESTful 应用程序(我是初学者)。这是一个基于登录的应用程序,可以创建帖子并为帖子创建评论。(只有经过身份验证的用户才能写帖子或评论)。我创建了创建帖子的功能,并使用如下所示的 curl 请求对其进行了测试:

$ curl --data "title=test&body=test" http://127.0.0.1:8000/api/post?api_token=dLE6IofaGHmG1CWU6b6jWUE9h4161G8FJ3719CjZkTRbkH4orIvT5aGGNhWt

它正在工作,一切都很好。我还在 api.php 中为登录/注销/注册创建了路由。我想通过 curl 请求测试它们。所以我试图用一些请求来测试它:

$ curl --data "name=test&email=test@gmail.com&password=test&password_confirmation=test" http://127.0.0.1:8000/api/register

他们都将我重定向到登录。你能告诉我哪里错了吗?

提前致谢。

【问题讨论】:

  • 将您的routes 发布到?
  • 可以分享一下你的注册功能吗?
  • @apokryfos protected function create(array $data) { return User::create([ 'name' => $data['name'], 'email' => $data['email'], 'api_token' => str_random(60), 'password' => bcrypt($data['password']), ]); }
  • @ElitsaVrancheva 你能用这个更新问题吗?这也是create方法,那之后会发生什么?
  • @apokryfos 通常,身份验证是框架附带的内置功能。我刚刚启用它。除了添加用于创建随机 api_token 的行之外,我没有编写任何代码。如果您使用提供的界面,它通常可以工作,但我想在命令行中对其进行测试。但是注册后用户就登录了。

标签: php laravel curl laravel-5.3 laravel-5.4


【解决方案1】:

routes/api.php 不使用 StartSession 中间件,由于登录使用会话,它总是会提示您在每个请求上登录。

你有几个选择

1) 将您的 API 路由移动到 routes/web.php 所以你的 API 使用会话。

这不是最好的设计,因为 API 应该是无状态的,以遵循良好的 REST 设计原则,但它会解决您的登录问题。

2) 作为上述建议的评论者,查看 Laravel Passport。

这将是首选方法,特别是如果您计划从多个平台使用您的 API。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-21
    • 1970-01-01
    • 2021-02-21
    • 2015-01-20
    • 2011-11-08
    • 2018-06-12
    • 1970-01-01
    • 2021-03-23
    相关资源
    最近更新 更多