Получение ошибки «Указанное значение для ‘redirect_uri’ недопустимо» при попытке получить токен доступа

#authentication #oauth-2.0 #azure-active-directory #outlook-restapi

#аутентификация #oauth-2.0 #azure-active-directory #outlook-restapi

Вопрос:

Когда я пытаюсь получить токен, я получаю ошибку:

The provided value for the 'redirect_uri' is not valid. The value must exactly match the redirect URI used to obtain the authorization code.

Мой uri перенаправления точно совпадает, поэтому я не понимаю, почему это происходит.

 $TOKEN_ENDPOINT         = 'https://login.microsoftonline.com/common/oauth2/v2.0/token';
$params = array(
    'grant_type'              => 'authorization_code',
    'code'                    => $azureCode,
    'clientId'                => '7c09ab71-***-****-****-53d7c4438112',
    'clientSecret'            => 'bnot*******20*[',
    'redirect_uri'            => 'https://testing.****.com/outlookOauthCallback.php',
    'urlAuthorize'            => $AUTHORIZATION_ENDPOINT,
    'urlAccessToken'          => $TOKEN_ENDPOINT,
    'urlResourceOwnerDetails' => '',
    'scope'                   => 'Calendars.ReadWrite User.Read'
);
$response = $client->getAccessToken($TOKEN_ENDPOINT, 'authorization_code', $params);
  

введите описание изображения здесь

(Поверьте мне, часть, которую я превратил в звезды, точно такая же, потому что я скопировал вставленный)

Даже в ответе, в котором я вернул параметры, оно точно такое же:

 Array
(
    [grant_type] => authorization_code
    [code] => M51b1b*****-daeec54627b2
    [clientId] => 7c09ab71-a*****d7c4438112
    [clientSecret] => bnotxdsamp;*amp;QB***cVLF20*[
    [redirect_uri] => https://testing.****.com/outlookOauthCallback.php
    [urlAuthorize] => https://login.microsoftonline.com/common/oauth2/v2.0/authorize
    [urlAccessToken] => https://login.microsoftonline.com/common/oauth2/v2.0/token
    [urlResourceOwnerDetails] => 
    [scope] => Calendars.ReadWrite User.Read
)
  

Итак, как он все еще может выдавать мне эту ошибку? Чего мне здесь не хватает?

Комментарии:

1. Если вы убедитесь в том же, вы могли бы попробовать добавить завершающую косую черту https://testing.****.com/outlookOauthCallback.php/ .

2. Вы можете попробовать http, тестирование . ****.com/outlookOauthCallback.php

3. var href = ‘ login.microsoftonline.com/common/oauth2 /… ‘; href = client_id ‘amp;resource= webdir.online.lync.comamp;redirect_uri= ‘ window. location.href; window. Расположение. href = href; Какой у вас redirect_uri в URL-адресе запроса?

4. Проблема заключалась в том, что я не указал redirect_uri в URL-адресе запроса. Спасибо, если вы опубликуете это в качестве ответа, я приму его

5. @SinanSamet Рад слышать, что ваша проблема решена. Я добавил ответ.

Ответ №1:

Вам нужно указать redirect_uri в URL-адресе запроса. Что-то вроде

 var href = 'login.microsoftonline.com/common/oauth2/…'; href  = client_id   'amp;resource=webdir.online.lync.comamp;redirect_uri='   window.location.href;