成功验证后,我想刷新授权令牌,因此我发出以下请求
curl -X POST \
https://login.microsoftonline.com/<my-tenant>/oauth2/v2.0/token \
-H 'Cache-Control: no-cache' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-F grant_type=refresh_token \
-F refresh_token=<my-refresh-token> \
-F client_id=<my-client-id> \
-F client_secret=<my-client-secret>
但是,我没有使用新令牌返回,而是获得以下响应:
{
"error": "server_error",
"error_description": "AADSTS50000: There was an error issuing a token.\r\nTrace ID: bb72ee21-7df2-4949-8375-e6d97b621300\r\nCorrelation ID: 719ea759-622b-4d63-be17-56fd6c255195\r\nTimestamp: 2018-06-15 09:07:13Z",
"error_codes": [
50000
],
"timestamp": "2018-06-15 09:07:13Z",
"trace_id": "bb72ee21-7df2-4949-8375-e6d97b621300",
"correlation_id": "719ea759-622b-4d63-be17-56fd6c255195"
}
租户,客户端ID和客户端密钥与获取刷新令牌时使用的内容完全相同。然而,某些事情显然是缺失或不正确的 - 但是什么呢?
答案 0 :(得分:0)
您缺少必需的scope
参数as described here。
您还需要提供redirect_uri
,尽管您只是发出了POST请求。
redirect_uri
必须与原始授权调用中使用的redirect_uri
匹配。
刷新访问令牌时,您必须提供要获取令牌的范围。另外请确保您了解您只能刷新access_token,而不是id_token。而access_token总是有目的(范围)。
文档中描述的所有内容。