我正在尝试按照https://auth0.com/docs/what-to-do-once-the-user-is-logged-in/calling-an-external-idp-api的步骤列表进行操作,但尽管我尽了最大努力但仍无法获取访问令牌,因为我收到如下错误:
POST https://r***s.eu.auth0.com/oauth/token 401 (Unauthorized)
当我尝试获取访问令牌时。
我的代码如下:
var data = {
client_id : '****',
client_secret : '****',
audience : 'https://r****.eu.auth0.com/api/v2/',
grant_type : 'client_credentials'
};
var config = {
json: true,
headers : {
'Content-Type': 'application/json;'
};
}
$http.post('https://r***.eu.auth0.com/oauth/token',data, config).then (
function(response) { console.log(response); }
);
答案 0 :(得分:0)
问题是您在执行Content-Type
请求时设置了错误的POST
。
JSON请求的正确内容类型如下: application/json
您在最后添加了一个额外的 ;
字符,这会导致服务器发出401响应。
此外,该代码段似乎来自AngularJS应用程序。如果出现这种情况,由于CORS限制,除非应用程序域在客户端设置中的允许来源(CORS)列表中列入白名单(Auth0)仪表板),您无论如何都无法执行请求。这是第一个问题,但不是最大问题... 如果你通过将域添加到白名单来解决这个问题,那么你现在有一个客户端标识符和存储在客户端应用程序上的秘密意味着任何人都可以通过查看代码来访问它。 在几乎所有(可能是99.9%)的情况下,这都是错误的。