使用AWS API Gateway进行授权失败

时间:2016-11-20 10:34:45

标签: angularjs amazon-web-services curl aws-api-gateway

我已将AWS API Gateway与AWS Cognito用户池集成。以下curl命令有效。

curl -X PUT -H "Authorization:<id token>" -d <json data> <https url>

但是,授权因以下Angularjs $ http.put而失败。 AWS cloudwatch日志显示“用户未经授权”

$http.defaults.headers.common['Authorization'] = token
$http.put('https://<url>', <json data> )
    .then(function (data, status, headers, config) {
        console.log('success')
    }, function (data, status, headers, config) {
        console.log('failure')
    });

如何使用$ http.put设置授权令牌?

1 个答案:

答案 0 :(得分:0)

我认为您要做的是将请求的标头设置为$http.put(<url>, options)...中的第二个参数。

因此,在您的情况下,您的代码应如下所示:

var options = {headers:  {
                        'Authorization': token,
                        'Content-Type': 'application/json'
                        }
              };

$http.put('https://<url>', <json data>, options);

您可以查看documentation here以了解有关调用$http.X方法的不同方法的详情。

我希望这会有所帮助。