Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

angular-aws-apig

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

angular-aws-apig

Angular interceptor for $http service that signs all requests to AWS APIGateway with IAM credentials.

  • 1.2.3
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

angular-aws-apig

This library provides an Interceptor for angular $http service that signs all request to AWS APIGateway with IAM credentials. It is handy when you use temprorary IAM Credentials from AWS Cognito or Auth0. Although AWS APIGateway provides autogenerated Javascript SDK, you can't use it with angular $http service and you need to regenerate it every time you change something in the API.

Installing it

You have several options:

bower install angular-aws-apig --save
npm install angular-aws-apig --save

Or just include dist/angular-aws-apig.js or dist/angular-aws-apig.min.js in to your index.html

Basic usage

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');
});

APIGInterceptorProvider.config

  • headers - global headers that would be added to all api requests (default: {})
  • region - AWS region (default: us-east-1)
  • service - AWS service (default: execute-api)
  • urlRegex - RegEx string, Interceptor would ignore requests to url that doesn't match this RegEx. (default: '')

All options could be passed in APIGInterceptorProvider.config function as a single object or assigned directly

APIGInterceptorProvider.urlRegex = 'myapi.com';

APIGInterceptorProvider.headersGetter

A function that provides dynamic headers. It accepts $http request object as a parameter and must return headers object. You can pass angular dependencies in this function.

APIGInterceptorProvider.headersGetter = function($rootScope, request) {
		var headers = request.headers
		headers.foo = $rootScope.foo;
		return headers;
	};

APIGInterceptorProvider.credentialsGetter

A function that provides dynamic AWS IAM Credentials. It accepts $http request object as a parameter and must return credentials object. You can pass angular dependencies in this function. Function can return $q promise.
If this function is not specified APIGInterceptor will try to get credentials from AWS.config.credentials

APIGInterceptorProvider.credentialsGetter = function(awsCredentials, auth) {
		return awsCredentials.get(auth.idToken);
	};

In this example awsCredentials.get returns a promise that resolves with credentials object

  {
    accessKeyId: 'accessKeyId',
    secretAccessKey: 'secretAccessKey',
    sessionToken: 'sessionToken'
  }

$APIGError event

This event would be triggered on request error.

$rootScope.$on('$APIGError', (event, error) => {
  $log.debug(event, error);
});

Credits

This library is a wrapper around aws4 npm package.

Keywords

FAQs

Package last updated on 16 May 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc