【问题标题】:GuzzleHttp resulted in 404 not found on a route that existsGuzzleHttp 导致在存在的路由上找不到 404
【发布时间】:2019-06-07 00:49:51
【问题描述】:

我正在向 POST api.myserver.com/v1/oauth/token 发送请求以获取带有 client_credentials 的令牌,如下所示:

$client = new GuzzleHttp\Client; // A guzzle client
$response = $this->client->post('http://api.myserver.com/v1/oauth/token', [
  'form_params' => [
    'grant_type' => 'client_credentials',
    'client_id' => 'MY_CLIENT_ID',
    'client_secret' => 'MY_CLIENT_SECRET',
    'scope' => ''
  ],
  'headers' => [
    'Accept' => 'application/json'
  ]
));

我正在使用 apiato 框架,因此默认的 laravel 护照令牌生成路由已修改为 api.myserver.com/v1/oauth/token 之类的内容,因此路径也已修改。

现在,当我从浏览器运行上面的代码时,它会抛出 404 not found exception。当我在POSTman 上运行它时它工作正常。当我在测试环境中运行它时,它也可以正常工作。

Client error: `POST http://api.myserver.com/v1/oauth/token` resulted in a `404 Not Found` response:
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" co (truncated...)

我尝试将路径更改为http://myserver.com/oauth/token,但没有成功。可能出了什么问题?

【问题讨论】:

    标签: php oauth-2.0 guzzle laravel-passport laravel-5.7


    【解决方案1】:

    嗯,当您尝试使用浏览器访问此端点时收到 404 的原因是因为它是一个 POST 请求。当您通过浏览器访问 URL 时,它是一个 GET 请求。

    【讨论】:

    • 我正在从 JavaScript 客户端 (axios) 发送 POST 请求
    【解决方案2】:

    这发生在我身上,特别是client_credentialsgrant_type。如果我使用authorization_code 它可以工作。还不知道为什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-14
      • 1970-01-01
      • 2015-04-07
      • 2014-07-12
      • 1970-01-01
      • 2020-03-26
      • 2017-03-12
      • 2021-11-06
      相关资源
      最近更新 更多