当我尝试获取访问令牌时,获取“ redirect_uri'的提供的值无效”错误

时间:2019-04-01 14:33:17

标签: authentication 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);

enter image description here

(相信我,我变成星星的部分是完全一样的,因为我复制粘贴了)

即使在返回参数的响应中,它也完全相同:

Array
(
    [grant_type] => authorization_code
    [code] => M51b1b*****-daeec54627b2
    [clientId] => 7c09ab71-a*****d7c4438112
    [clientSecret] => bnotxds&*&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 个答案:

答案 0 :(得分:1)

您需要在请求url中指定redirect_uri。

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