#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;