- Notifications
You must be signed in to change notification settings - Fork3
🔏 AWS sigv4, optimized for size
License
tivac/aws-sig
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Teeny-tiny library for signing requests to Amazon Web Services using thesignature v4 signing algorithm. Supports signing requests viaAuthorization
header or query params.
No serious, it's really small!
I wanted something small. Really, really small. Couldn't find a small AWS v4 signing library that worked in a browser using rollup for bundling so... here we are. ¯\_(ツ)_/¯
import{signedHeaders,signedQuery}from"aws-sig";constconfig={accessKeyId :"AKIDEXAMPLE",secretAccessKey :"wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY",// sessionTokens are optional, but correctly supportedsessionToken :"..."};constrequest={// These can be part of the config object or the request objectregion :"us-east-1",service :"service",method :"GET",url :"https://my.aws.url.that.i.need.to.hit/look/it-has/a-path-in-it-as-well",// Headers are optionalheaders :{// Single header value"X-Amz-Date" :"20150830T123600Z",// Multiple headers"X-Multiple" :["one","two","three"]}// Body is optional, should be a stringbody : "..."};constsigned=signedHeaders(request,config);/** * signed : { * url : "https://my.aws.url.that.i.need.to.hit/look/it-has/a-path-in-it-as-well" * method : "GET", * headers : { * X-Amz-Date : "20150830T123600Z", * "X-Multiple" : [ "one", "two", "three" ], * Authorization : "...", * }, * body : "...", * } */// Signing queries is identical, just uses signedQuery() insteadconstconfig={accessKeyId :"AKIDEXAMPLE",secretAccessKey :"wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY",// sessionTokens are optional, but correctly supportedsessionToken :"...",// These can be part of the config object or the request objectregion :"us-east-1",service :"service",};constrequest={url :"https://my.aws.url.that.i.need.to.hit/look/it-has/a-path-in-it-as-well",};constsigned=signedQuery(request,config);/** * signed : { * url : "https://my.aws.url.that.i.need.to.hit/look/it-has/a-path-in-it-as-well?X-Amz-Algorithm=...&X-Amz-Credential=..." * method : "GET", * headers : {}, * body : undefined, * } */
Supports query params, date overrides viaX-Amz-Date
orDate
headers, multiple header values, and probably some other features.
Tested against API Gateway so far. Your results may vary for other services, S3 seems especially fraught with peril. 💀
About
🔏 AWS sigv4, optimized for size
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors4
Uh oh!
There was an error while loading.Please reload this page.