微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法生成访问令牌

如何解决无法生成访问令牌

我在使用 feign 客户端生成访问令牌时遇到异常。相同的有效载荷在 Postman 中运行良好。

MultiValueMap<String,Object> map = new LinkedMultiValueMap<>();
map.add("grant_type","client_credentials");
map.add("client_id","67881e5b-f5d5-4085-8762-c35b7b6aeede");
map.add("client_secret","D-85Pg3wN63dmznxa-puB_89Po~o5CsKhA");
map.add("scope","https://graph.microsoft.com/.default");

AccesstokenResponse openIdTokenResponse = graphAPILoginFeignClient.getAccessIdToken("5494cc2e-fb14-4a2d-bb5e-bf164d9141cf",request);

Feignclient 代码

@FeignClient(name = "GraphAPILoginFeignClient",url = "${graphApiLoginUrl}")
public interface GraphAPILoginFeignClient {
   @PostMapping(value = "/{tenantID}/oauth2/v2.0/token",consumes = MediaType.APPLICATION_JSON_VALUE)
   AccesstokenResponse getAccessIdToken(@PathVariable("tenantID") String tenantID,@RequestBody MultiValueMap<String,Object>  request);
}

异常:

{
  "timestamp": "2021-01-27T17:30:34.456+00:00","message": "[400 Bad Request] during [POST] to [https://login.microsoftonline.com/5494cc2e-fb14-4a2d-bb5e-bf164d9141cf/oauth2/v2.0/token]    [GraphAPILoginFeignClient#getAccessIdToken(String,AuthorizationTokenRequest)]: 
  [{\"error\":\"invalid_request\",\"error_description\":\"AADSTS900144: The request body must contain the 
                                          following parameter: 'grant_type'.\\r\\n
    Trace ID: b8ef5f37-95f7-4427-8f0e-146a34b65000\\r\\n
    Correlation ID: ... (503 bytes)]","details": "uri=/accessmanagement/allusers"
}

来自 Postman 的相同请求负载

https://i.stack.imgur.com/zxFVa.png

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。