AADSTS90014:请求正文必须包含以下参数:'grant_type'
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AADSTS90014:请求正文必须包含以下参数:'grant_type'相关的知识,希望对你有一定的参考价值。
我正在尝试发送一个帖子请求,以便从https://login.microsoftonline.com/common/oauth2/v2.0/token
接收我的访问令牌。当我在我的REST客户端中尝试这个时,它可以工作,但是当我尝试将它集成到我的应用程序时,它会向我发送一个错误400 Bad Gateway
,消息为AADSTS90014: The request body must contain the following parameter: 'grant_type'
。我试着寻找答案,并发现我需要在我的帖子请求中实现标题,所以我这样做了,但它仍然无效。有任何想法吗?
Http进口:import { HttpClient, HttpHeaders, HttpRequest } from '@angular/common/http';
致电发布请求:
var url=this.outlook_authentification_endpoint+"token";
var query_parameters=JSON.stringify({grant_type:"authorization_code", client_id:this.outlook_client_id, code: this.outlook_user_code, client_secret: this.outlook_secret_key, redirect_uri: this.outlook_redirect_uri});
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/x-www-form-urlencoded'
})
};
this.query_service.postOutlook(url, query_parameters, httpOptions, (data)=>
{
console.log(data);
});
调用帖子功能:
public postOutlook(url, query, headers, callback)
{
this.operation_pending=true;
this.http_client.post(url,query, headers).subscribe((data)=>
{
this.operation_pending=false;
callback(data);
});
}
任何人都可以看到我的错误在哪里?
您正在使用错误的OAuth2流程(获取令牌的方式)。您正在使用Auth code grant,它不能在浏览器应用程序中使用,因为您必须在javascript中保密您的客户端,这意味着将其公开。所以你也无法访问/token
端点。
您应该使用专为浏览器应用程序设计的Implicit grant。然后,您可以将令牌直接放入Angular应用程序中,而无需转到/token
端点。
以上是关于AADSTS90014:请求正文必须包含以下参数:'grant_type'的主要内容,如果未能解决你的问题,请参考以下文章
oauth2错误AADSTS90014:请求正文必须包含以下参数:'grant_type'
AADSTS750054:SAMLRequest 或 SAMLResponse 必须作为查询字符串参数出现在 SAML 重定向绑定的 HTTP 请求中
如何修复“AADSTS90102:‘redirect_uri’值必须是有效的绝对 Uri。” Microsoft Graph 中的错误
AADSTS50011:请求中指定的回复 URL 与为应用程序配置的回复 URL 不匹配我很反感
AWS Lambda 错误:当 url 参数包含 JSON 数组时,“无法将请求正文解析为 json”
AADSTS50011:请求中指定的回复 URL 与为应用程序配置的回复 URL 不匹配:'**********-*****-*****-**** *****'