php - Onelogin 和 ID token : grant request is invalid

标签 php api curl token onelogin

我正在使用 connect id处理rstudio登录。检索 code 后 API 返回错误:{"error":"invalid_grant","error_description":"grant request is invalid"} 我不知道为什么:

$ch=curl_init();
$header = array('Authorization: Basic '.base64_encode($client_id.':'.$secret), 'Content-Type: application/x-www-form-urlencoded');
$post = array('grant_type' => 'authorization_code',
'code' => $code,
'redirect_uri' => 'MY_URL');
$url = "https://eif-til.onelogin.com/oidc/token";
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
$result = curl_exec($ch);

输入的所有变量似乎都正常,收到的授权码似乎正常并按原样传递。在 Onelogin 方面,一切似乎都按应有的方式配置。我怀疑是 PHP Curl 代码,但我不知道缺少什么/错了什么

最佳答案

您的 Content-Type header 不正确:

$header = array('Authorization: Basic '.base64_encode($client_id.':'.$secret), 'Content-Type=application/x-www-form-urlencoded');

应阅读:

$header = array('Authorization: Basic '.base64_encode($client_id.':'.$secret), 'Content-Type: application/x-www-form-urlencoded');

即在名称和值之间使用“冒号”而不是“=”。

关于php - Onelogin 和 ID token : grant request is invalid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51077829/

相关文章:

php - 了解 PHP 中的特征与组合

api - 如何与他人共享 `AsyncAPI`文档?

api - 如何以编程方式获取我的 LinkShare 商家域列表

linux - curl 语法错误 : append couchdb document failed with "conflict"?

php - 传递参数 HWIOAuthbundle symfony2

php - 在共享相同 wp_users 和 wp_usermeta 表的两个 Wordpress 安装之间同步所有用户角色。

Java 相当于 PHP 的curls 指令

windows - CURL 中是否有 WGET -N 的等效函数?

php - 使用 PHP 用标签包装一大块文本

java - 尝试通过 java 中的 Rally API 创建/更新/删除/查询 Rally 时出现 HTTP/1.1 401 Unauthorized Exception