1.2.1 • Published 7 years ago

react-native-aws4 v1.2.1

Weekly downloads
65
License
MIT
Repository
github
Last release
7 years ago

AWS4 React Native

GitHub Logo

NOTE: This package is a stabe fork of aws4 and aws4-react-native modified to work with React Native apps. With the most important change - fix Buffer dependencies. The core Node JS module querystring has been replaced by querystring-browser, and crypto has been replaced by a standalone javascript file crypto.js generated using browserify.

What follows is the a slighly modified README from aws4.

Example

import aws4 from 'react-native-aws4';

// given an options object you could pass to http.request
const opts = {
  host: 'sqs.us-east-1.amazonaws.com',
  path: '/?Action=ListQueues'
};

// alternatively (as aws4 can infer the host):
opts = {
  service: 'sqs', 
  region: 'us-east-1', 
  path: '/?Action=ListQueues'
}

// alternatively (as us-east-1 is default):
opts = {
  service: 'sqs', 
  path: '/?Action=ListQueues'
}

aws4.sign(opts) // assumes AWS credentials are available in process.env

console.log(opts)
/*
{
  host: 'sqs.us-east-1.amazonaws.com',
  path: '/?Action=ListQueues',
  headers: {
    Host: 'sqs.us-east-1.amazonaws.com',
    'X-Amz-Date': '20121226T061030Z',
    Authorization: 'AWS4-HMAC-SHA256 Credential=ABCDEF/20121226/us-east-1/sqs/aws4_request, ...'
  }
}
*/

// we can now use this to query AWS using the standard React Native API
const url = "https://" + signedOptions.host + signedOptions.path;
fetch(url, signedOptions)
  .then(body => body.json())
  .then(json => console.log(json));
// The above code is equivalent to the following Node JS request:
// http.request(opts, function(res) { res.pipe(process.stdout) }).end()
/*
*/