当我尝试使用 PHP 访问 JIRA REST API 时未授权 (401)

Unauthorized (401) when I try to access JIRA REST API with PHP

我正在尝试将 JIRA REST API 与 PHP 一起使用。当我复制下面的 url 并将其直接粘贴到浏览器中时,它工作正常。由此产生的问题被 return 编辑为 json。

但是下面的代码不起作用。我收到未经授权 (401) 作为 return 消息。是的,我已经检查并仔细检查了凭据是否有效。这是我的代码:

$username = 'username';
$password = 'psw';
$url = "https://mycompany.atlassian.net/rest/api/2/issue/XXX-123";

$curl = curl_init();
curl_setopt($curl, CURLOPT_USERPWD, "$username:$password");
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);

$result = curl_exec($curl);
echo $result;

有什么想法吗?

尝试从 url 中删除 https:// 部分。

尝试添加

curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);

解决方案:提供凭据时使用用户名而不是电子邮件。

事实证明,即使您在 JIRA 中使用您的电子邮件登录,也不是您在这里使用的电子邮件,而是用户名,可以在 Jira->设置->个人资料中找到