oauth-signature-js alternatives and similar libraries
Based on the "API" category.
Alternatively, view oauth-signature-js alternatives based on common mentions on social networks and blogs.
-
React Query
๐ค Powerful asynchronous state management, server-state utilities and data fetching for TS/JS, React, Solid, Svelte and Vue. [Moved to: https://github.com/TanStack/query] -
Newman
Newman is a command-line collection runner for Postman -
urql
The highly customizable and versatile GraphQL client with which you add on features like normalized caching as you grow. -
Apollo and GraphQL for Vue.js
๐ Apollo/GraphQL integration for VueJS -
wretch
A tiny wrapper built around fetch with an intuitive syntax. :candy: -
Swagger Client
Javascript library to connect to swagger-enabled APIs via browser or nodejs -
bottleneck
Job scheduler and rate limiter, supports Clustering -
Optic
OpenAPI linting, diffing and testing. Optic helps prevent breaking changes, publish accurate documentation and improve the design of your APIs. -
Vue Query
Hooks for fetching, caching and updating asynchronous data in Vue -
jquery.rest
A jQuery plugin for easy consumption of RESTful APIs -
SapphireDb
SapphireDb Server, a self-hosted, easy to use realtime database for Asp.Net Core and EF Core -
amygdala
RESTful HTTP client for JavaScript powered web applications. -
Apitest
Apitest is declarative api testing tool with JSON-like DSL. -
prim-rpc
Easy-to-understand, type-safe, transport-agnostic RPC/IPC for JavaScript, supporting callbacks, batching, file handling, custom serialization, and more. -
Rails Ranger
๐ค An opinionated AJAX client for Ruby on Rails APIs -
Angular Chat App Example
Build a simple group chat application with Angular 7 from scratch -
Bearer API Client for JavaScript
Bearer provides all of the tools to build, run and manage API integrations. -
Bearer.sh
Universal API client that supports OAuth / API Key / Basic / etc. -
GazeRecorder
GazeRecorder | Behavior Analytics Made Easy | Website Eye-Tracking Heatmaps -
Vicis
Presentation and transformation layer for data output in RESTful APIs.
Appwrite - The open-source backend cloud platform
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of oauth-signature-js or a related project?
README
OAuth 1.0a signature generator for node and the browser
Compliant with RFC 5843 + Errata ID 2550 and community spec
Installation
Install with npm
:
npm install oauth-signature
Install with bower
:
bower install oauth-signature
Add a <script>
to your index.html
:
<script src="/bower_components/oauth-signature/dist/oauth-signature.js"></script>
Usage
To generate the OAuth signature call the following method:
oauthSignature.generate(httpMethod, url, parameters, consumerSecret, tokenSecret, options)
tokenSecret
is optionaloptions
is optional
the default options
parameter is as follows
var options = {
encodeSignature: true // will encode the signature following the RFC 3986 Spec by default
}
Example
The following is an example on how to generate the signature for the reference sample as defined in
var httpMethod = 'GET',
url = 'http://photos.example.net/photos',
parameters = {
oauth_consumer_key : 'dpf43f3p2l4k3l03',
oauth_token : 'nnch734d00sl2jdk',
oauth_nonce : 'kllo9940pd9333jh',
oauth_timestamp : '1191242096',
oauth_signature_method : 'HMAC-SHA1',
oauth_version : '1.0',
file : 'vacation.jpg',
size : 'original'
},
consumerSecret = 'kd94hf93k423kf44',
tokenSecret = 'pfkkdhi9sl3r4s00',
// generates a RFC 3986 encoded, BASE64 encoded HMAC-SHA1 hash
encodedSignature = oauthSignature.generate(httpMethod, url, parameters, consumerSecret, tokenSecret),
// generates a BASE64 encode HMAC-SHA1 hash
signature = oauthSignature.generate(httpMethod, url, parameters, consumerSecret, tokenSecret,
{ encodeSignature: false});
The encodedSignature
variable will contain the RFC 3986 encoded, BASE64 encoded HMAC-SHA1 hash, ready to be used as a query parameter in a request: tR3%2BTy81lMeYAr%2FFid0kMTYa%2FWM%3D
.
The signature
variable will contain the BASE64 HMAC-SHA1 hash, without encoding: tR3+Ty81lMeYAr/Fid0kMTYa/WM=
.
Requesting a protected resource
Use the generated signature to populate the oauth_signature
parameter to sign a protected resource as per RFC.
Example GET request using query string parameters:
Advantages
This project has an extensive test coverage for all the corner cases present in the OAuth specifications (RFC 5843 + Errata ID 2550 and OAuth.net community-based specification)
Take a look at the test file [src/app/signature.tests.js](src/app/oauth-signature.tests.js)
How do I run tests?
The tests can be executed in your browser or in node
Browser
Open the file [src/test-runner.html](src/test-runner.html) in your browser
You can also run them live: src/test-runner.html
Node
Execute npm test
in the console
Live example
If you want to make a working experiment you can use the live version of the OAuth signature page at this url: http://bettiolo.github.io/oauth-reference-page/
And you can hit the echo OAuth endpoints at this url: http://echo.lab.madgex.com/
- url: http://echo.lab.madgex.com/echo.ashx
- consumer key: key
- consumer secret: secret
- token: accesskey
- token secret: accesssecret
- nonce: IMPORTANT! generate a new one at EACH request otherwise you will get a 400 Bad Request
- timestamp: IMPORTANT! refresh the timestamp before each call
- fields: add a field with name
foo
and valuebar
A url similar to this one will be generated: http://echo.lab.madgex.com/echo.ashx?foo=bar&oauth_consumer_key=key&oauth_nonce=643377115&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1410807318&oauth_token=accesskey&oauth_version=1.0&oauth_signature=zCmKoF9rVlNxAkD8wUCizFUajs4%3D
Click on the generated link on the right hand side and you will see the echo server returning foo=bar
Maintenance
Updating uri-js/js-url
npm run update
Updating chai/mocha
Update them via npm
but also manually in test-runner.html
Publish a new version
npm version [major|minor|patch]
git push
git push --tags