Node.js 尝试刷新令牌时出现无效的_grant错误
我正在开发一个node.js应用程序,它使用outlook rest API获取邮件。我正在使用API 我正在尝试使用以下请求刷新令牌。我使用请求npm来调用APINode.js 尝试刷新令牌时出现无效的_grant错误,node.js,azure-active-directory,microsoft-graph-api,Node.js,Azure Active Directory,Microsoft Graph Api,我正在开发一个node.js应用程序,它使用outlook rest API获取邮件。我正在使用API 我正在尝试使用以下请求刷新令牌。我使用请求npm来调用API { url: 'https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token', method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
{
url: 'https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token',
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
formData:
{
scope: 'offline_access User.Read Mail.Read',
client_id: 'c251b61b-c6db-4f64-89bd-7009444d1bc8',
grant_type: 'refresh_token',
redirect_uri: 'http://localhost:3000/myurl',
refresh_token: 'refresh-token',
client_secret: 'cli-secret'
}
}
但是得到以下错误
{
"error": "invalid_grant",
"error_description": "AADSTS9002313: Invalid request. Request is malformed or invalid.745ec0500",
"correlation_id": "a2d87f11-0671-41f1-a5e7-654f1796c3d1"
}
我还尝试在标题中添加
内容长度
,并使用&
和=
将所有变量追加到字符串中,然后将其发送到正文中,但我得到了相同的错误。我正在成功获取一个访问令牌。到目前为止,我知道您试图以错误的方式获取刷新令牌
正如错误所说,您尝试的授权类型不正确
根据您给定的参考,grant\u type
应为authorization\u code
。一旦获得代码
,您就需要使用它来实现访问令牌
和刷新令牌
当您的访问令牌过期时,您必须使用刷新令牌来获取新的访问令牌
在这种情况下,尝试使用response\u type=code
格式。我希望它能解决你的问题
代码请求:
在邮递员控制台中获取代码:
请求使用代码访问和刷新令牌:
通过代码获取访问和刷新令牌:
访问令牌过期时获取刷新令牌:
注意:这就是您获取授权码的确切方式,以及使用此代码如何获取访问令牌和刷新
令牌
最后,当
访问令牌
已过期
谢谢你,快乐编码 您检索access\u令牌的初始调用是什么样子的?