交换 AccessToken,returns 错误 "invalid_grant" 代码 9002313
Exchanging AccessToken, returns error "invalid_grant" code 9002313
我试图从 Outlook 加载项获取用户的访问令牌,然后将其交换为图形 api 令牌,但出现此错误:
{
"error": "invalid_grant",
"error_description": "AADSTS9002313: Invalid request. Request is malformed or invalid.\r\nTrace ID: 4e9c3fab-96b3-4d26-a947-969da5ada400\r\nCorrelation ID: 7bdd112e-5afd-4468-bdac-0586e8dfe2b4\r\nTimestamp: 2022-05-09 10:18:27Z",
"error_codes": [
9002313
],
"timestamp": "2022-05-09 10:18:27Z",
"trace_id": "4e9c3fab-96b3-4d26-a947-969da5ada400",
"correlation_id": "7bdd112e-5afd-4468-bdac-0586e8dfe2b4",
"error_uri": "https://login.microsoftonline.com/error?code=9002313"
}
我是这样打电话的:
这是我获取访问令牌的方式:
OfficeRuntime.auth
.getAccessToken({ allowConsentPrompt: true, allowSignInPrompt: true, forMSGraphAccess: true })
.then((res) => { ...
这些是我的权限:
我试图在我的环境中重现同样的错误。我已经注册了一个 Azure AD 应用程序并授予了如下相同的权限:
我在 Postman 中包含了以下参数并成功获得了访问令牌。
为了重现同样的错误,我用一些标记值替换了 code
的值并得到如下结果:
因此,出现该错误的原因是 向 code
参数提供了错误的值。
要获得正确的 code
值,请尝试形成一个 授权 URL,如下所示:
在浏览器中打开上述URL,select您的帐户并接受权限同意。您可以在地址栏中找到 code
值,如下所示。
复制该值并用此替换之前的code
参数值,您将成功获得访问令牌。
我试图从 Outlook 加载项获取用户的访问令牌,然后将其交换为图形 api 令牌,但出现此错误:
{
"error": "invalid_grant",
"error_description": "AADSTS9002313: Invalid request. Request is malformed or invalid.\r\nTrace ID: 4e9c3fab-96b3-4d26-a947-969da5ada400\r\nCorrelation ID: 7bdd112e-5afd-4468-bdac-0586e8dfe2b4\r\nTimestamp: 2022-05-09 10:18:27Z",
"error_codes": [
9002313
],
"timestamp": "2022-05-09 10:18:27Z",
"trace_id": "4e9c3fab-96b3-4d26-a947-969da5ada400",
"correlation_id": "7bdd112e-5afd-4468-bdac-0586e8dfe2b4",
"error_uri": "https://login.microsoftonline.com/error?code=9002313"
}
我是这样打电话的:
这是我获取访问令牌的方式:
OfficeRuntime.auth
.getAccessToken({ allowConsentPrompt: true, allowSignInPrompt: true, forMSGraphAccess: true })
.then((res) => { ...
这些是我的权限:
我试图在我的环境中重现同样的错误。我已经注册了一个 Azure AD 应用程序并授予了如下相同的权限:
我在 Postman 中包含了以下参数并成功获得了访问令牌。
为了重现同样的错误,我用一些标记值替换了 code
的值并得到如下结果:
因此,出现该错误的原因是 向 code
参数提供了错误的值。
要获得正确的 code
值,请尝试形成一个 授权 URL,如下所示:
在浏览器中打开上述URL,select您的帐户并接受权限同意。您可以在地址栏中找到 code
值,如下所示。
复制该值并用此替换之前的code
参数值,您将成功获得访问令牌。