我使用 OAuth2 授权(restify-oauth2插件)在 Restify 上构建了一个简单的 node.js 后端。
我在请求令牌时遇到问题。当我使用我的REST客户端调用POST方法时,一切正常,我得到access_token
和token_type
。
当我尝试在 Angular 中制作的前端应用程序中执行相同操作时,会出现问题。
这是我的代码:
var req = {
method: 'POST',
url: 'http://localhost:8080/token',
headers: headers,
data: {},
params: {grant_type: "client_credentials"}
};
$http(req).success(function(data, status, headers, config){
console.log('success');
}).error(function(data, status, headers, config){
console.log('error');
});
如您所见,提供了grant_type
参数。但是服务器仍然响应:
{"error":"invalid_request","error_description":"Must specify grant_type field."}
这是devtools截图:
我如何更改请求以使其正常工作?
答案 0 :(得分:0)
我终于解决了它。问题是grant_type字段必须在请求体内传递,而不是在参数中传递。
工作申请代码:
var req = {
method: 'POST',
url: 'http://localhost:8080/token',
headers: headers,
data: "grant_type=client_credentials"
};
$http(req).success(function(data, status, headers, config){
console.log('success');
}).error(function(data, status, headers, config){
console.log('error');
});