具有 Angular 本机 $http 服务的 AWS API 网关
AWS API Gateway with Angular native $http service
我有使用 Cognito 临时凭证的 AWS API 网关。
我想设置 angular 本机 $http 服务以使用 api 和所需的 aws4 身份验证 headers。
我尝试使用 https://github.com/mhart/aws4 但我得到 InvalidSignatureException
有什么方法可以为 front-end 应用程序生成 aws4 身份验证 headers?有没有人有在没有自动生成 SDK 的情况下设置应用 API 网关的经验?
我希望 aws4 库能够正常工作 - 它可能与您使用它的方式有关。如果你能 post 一些代码,它可能有助于诊断。
集成 API 网关 API 的最简单方法是为您的 API 使用生成的 JS SDK。如果您不想使用它,您仍然可以 re-use 生成的 SDK 中的一些 SigV4 实用程序,并将签名过程集成到您的 Angular 客户端中。
谢谢,
瑞安
我写了一个 angular 模块 - angular-aws-apig on top of aws4 npm 包。它为 $http
服务提供拦截器。
angular.module('app', ['angular-aws-apig'])
.config(function Config($httpProvider, APIGInterceptorProvider) {
APIGInterceptorProvider.config({
headers: {},
region: 'us-east-1',
service: 'execute-api',
urlRegex: ''
})
/* @ngInject */
APIGInterceptorProvider.headersGetter = function(myService, request) {
myService.doSomething();
return request.headers;
};
/* @ngInject */
APIGInterceptorProvider.credentialsGetter = function(store, request) {
return store.get('credentials');
};
$httpProvider.interceptors.push('APIGInterceptor');
});
它允许在请求之前解析 AWS IAM 凭据。与 AWS Cognito 或 Auth0 一起使用可能很方便,因为它们提供临时 IAM 凭证以交换用户令牌。这些凭据随后可用于安全访问 APIGateway。
我有使用 Cognito 临时凭证的 AWS API 网关。
我想设置 angular 本机 $http 服务以使用 api 和所需的 aws4 身份验证 headers。
我尝试使用 https://github.com/mhart/aws4 但我得到 InvalidSignatureException
有什么方法可以为 front-end 应用程序生成 aws4 身份验证 headers?有没有人有在没有自动生成 SDK 的情况下设置应用 API 网关的经验?
我希望 aws4 库能够正常工作 - 它可能与您使用它的方式有关。如果你能 post 一些代码,它可能有助于诊断。
集成 API 网关 API 的最简单方法是为您的 API 使用生成的 JS SDK。如果您不想使用它,您仍然可以 re-use 生成的 SDK 中的一些 SigV4 实用程序,并将签名过程集成到您的 Angular 客户端中。
谢谢, 瑞安
我写了一个 angular 模块 - angular-aws-apig on top of aws4 npm 包。它为 $http
服务提供拦截器。
angular.module('app', ['angular-aws-apig'])
.config(function Config($httpProvider, APIGInterceptorProvider) {
APIGInterceptorProvider.config({
headers: {},
region: 'us-east-1',
service: 'execute-api',
urlRegex: ''
})
/* @ngInject */
APIGInterceptorProvider.headersGetter = function(myService, request) {
myService.doSomething();
return request.headers;
};
/* @ngInject */
APIGInterceptorProvider.credentialsGetter = function(store, request) {
return store.get('credentials');
};
$httpProvider.interceptors.push('APIGInterceptor');
});
它允许在请求之前解析 AWS IAM 凭据。与 AWS Cognito 或 Auth0 一起使用可能很方便,因为它们提供临时 IAM 凭证以交换用户令牌。这些凭据随后可用于安全访问 APIGateway。