У меня есть приложение php, которое использует Office 365 oauth2 для аутентификации.Все работает как надо, используя код ниже.Мне также необходимо получить идентификатор пользователя / адрес электронной почты учетной записи office 365, используемой для аутентификации.Я не смог понять, как это схватить.Я попытался добавить
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
Но для имени пользователя ничего не возвращается.Вот код, который я использую для аутентификации и перенаправления:
$authorization_code = filter_input(INPUT_GET, 'code');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://login.microsoftonline.com/common/oauth2/token");
curl_setopt($ch, CURLOPT_POST, 1);
$client_id = "xxxxx";
$client_secret = 'yyyy';
curl_setopt($ch, CURLOPT_POSTFIELDS,
"grant_type=authorization_code&client_id=".$client_id."&redirect_uri=https%3A%2F%2Fwww.noname.com%2Fdev%2F&scope=openid%20profile%20offline_access%20User.Read%20Mail.Read&resource=https%3A%2F%2Fgraph.microsoft.com%2F&&code=".$authorization_code."&client_secret=".urlencode($client_secret));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$server_output = curl_exec ($ch);
curl_close ($ch);
$jsonoutput = json_decode($server_output, true);
$bearertoken = $jsonoutput['access_token'];
$refresh_token = $jsonoutput['refresh_token'];