【问题标题】:Guzzle oauth2 authentification issueGuzzle oauth2 认证问题
【发布时间】:2022-08-24 01:42:05
【问题描述】:

我正在尝试使用 guzzle 连接到 oauth2 系统,但我不断收到此消息:


$guzzle = new GuzzleHttp\\Client;

$response = $guzzle->post(\'https://logincert.anaf.ro/anaf-oauth2/v1/authorize\', [
    \'form_params\' => [
        \'grant_type\'    => \'authorization_code\',
        \'response_type\' => \'token\',
        \'client_id\'     => \'xxxx\',
        \'client_secret\' => \'xxxxx\',
        \'redirect_uri\'  => \'http://redirect\'
    ],
]);

return json_decode((string) $response->getBody(), true)[\'access_token\'];
{
  \"error\":\"invalid_client\",
  \"error_description\":\"The client app does not support implicit grant\"
}

提供者没有提供太多关于返回消息的信息,他们提供的唯一信息是:

任何想法我做错了什么?

谢谢, 克里斯

  • 看来您并不真正了解 OAuth2 的工作原理。有关说明,请参阅this
  • 没错,我对 oauth 系统没有任何经验。我查看了链接中的信息,我注意到用户必须请求授权然后请求令牌,但是在提供者网站上发布的数据中,我没有看到任何参考和此登录的范围是能够访问 api 并在没有用户干预的情况下执行操作。如果您能提供有关如何执行此操作的更多有用信息,我们将不胜感激。谢谢
  • 实际上,您必须将用户发送到授权页面(由您的“授权端点”构建),并且他们必须同意。之后,您将获得授权码,用于交换访问令牌和可能的刷新令牌。访问令牌是短暂的,但刷新令牌不是(您可以存储它)。只要刷新令牌有效,您就可以使用它来获取新的访问令牌。当刷新令牌过期时,您必须再次将用户发送到授权页面。有关详细信息,请参阅this
  • 是的,我创建了一个 php 页面,当从安装了令牌的 PC 访问时,该页面将 client_id、client_secret 和 callbak_url 发送到授权页面。用户通过输入令牌 PIN 来获得他的许可,然后他被重定向到 callback_url 并获得一个新的代码参数,该参数可用于获取令牌。
  • 另一件事,而不是遵循他们糟糕的文档,搜索有关 php oauth 实现的信息,您将获得更好的质量信息。

标签: php oauth-2.0 guzzle


【解决方案1】:

@ChrisDeBurg,所以如果您的计算机上没有安装令牌,基本上您甚至无法测试系统(在邮递员左右)? (我总是以测试结束:https://logincert.anaf.ro/vdesk/hangup.php3) 谢谢!

【讨论】:

    猜你喜欢
    • 2021-06-22
    • 2015-05-22
    • 2020-12-13
    • 1970-01-01
    • 1970-01-01
    • 2014-08-16
    • 2013-05-28
    • 2018-09-04
    • 2019-03-11
    相关资源
    最近更新 更多