@yodasws/node-oauth
v1.0.0
Published
Library for interacting with OAuth 1.0, 1.0A, 2, and Echo. Provides simplified client access and allows for construction of more complex APIs and OAuth providers.
Downloads
6
Readme
@yodasws/node-oauth
A simple oauth API for node.js
. This API allows users to authenticate against OAUTH providers and thus act as OAuth consumers.
OAuth1.0A tested against Twitter (http://twitter.com), term.ie (http://term.ie/oauth/example/), TwitPic, Yahoo!, and Ally Invest.
Rudimentary OAuth2 supported and tested against Facebook, GitHub, foursquare, Google, and Janrain.
It also has support for OAuth Echo, which is used for communicating with 3rd party media providers such as TwitPic and yFrog.
Installation
yarn add @yodasws/node-oauth
npm install @yodasws/node-oauth
Examples
To run examples/tests install Mocha:
npm install -g mocha` and run `$ mocha you-file-name.js
OAuth1.0
const oauth = require('oauth');
const api = new oauth.OAuth(
config.request_token_url,
config.access_token_url,
config.application_key,
config.application_secret,
'1.0',
null,
'HMAC-SHA1'
);
api.get(
`${config.api_url}/accounts.json`,
config.access_token,
config.access_secret,
(error, data, response) => {
if (error) console.log(error);
console.log(data);
}
);
Streaming Response
const stream = api.get(
`${config.stream_url}/market/quotes.json`,
config.access_token,
config.access_secret
// Notice no callback function. Get response below
);
stream.on('response', (response) => {
response.setEncoding('utf8');
response.on('data', (data) => {
console.log(data);
});
});
stream.end();
OAuth2.0
Test suite requires Mocha.
describe('OAuth2', () => {
const OAuth = require('oauth');
it('gets bearer token', (done) => {
const twitterConsumerKey = 'your key';
const twitterConsumerSecret = 'your secret';
const oauth2 = new OAuth.OAuth2(
twitterConsumerKey,
twitterConsumerSecret,
'https://api.twitter.com/',
null,
'oauth2/token',
null
);
oauth2.getOAuthAccessToken(
'',
{
grant_type: client_credentials,
},
(e, access_token, refresh_token, results) => {
console.log('bearer: ', access_token);
done();
}
);
});