- Notifications
You must be signed in to change notification settings - Fork3
🔏 AWS sigv4, optimized for size
License
NotificationsYou must be signed in to change notification settings
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
Stars
Watchers
Forks
Packages0
No packages published