Office 365 oauth2 - получение идентификатора пользователя / электронной почты - PullRequest
0 голосов
/ 05 марта 2019

У меня есть приложение 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'];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...