Node.js client library for Oauth2
Node client library is tested against Node ~0.8.x
Install the client library using npm:
$ npm install simple-oath2
Install the client library using git:
$ git clone git://github.com/andrearegianto/simple-oauth2.git
$ cd simple-oauth2
$ npm install
- Simple Oauth2 Docs
var credentials = { client: { id: 'client-id', secret: 'client-secret', site: 'https://example.org' } };
var OAuth2 = require('simple-oauth2')(credentials);
// Returns the URI where to redirect your app
var redirect = Oauth2.AuthCode.authorizeURL({ redirectURI: 'http://localhost:3000/callback', scope: 'user', state: '02afe928b');
// => "https://example.org/oauth/authorization?response_type=code&client_id=client_id&redirect_uri=http://localhost:3000/callback&scope=user&state=02afe928b"
// Get the access token object
vat params = { code: 'authorization-code', redirectURI: 'http://localhost:3000/callback' }
client.authCode.getToken(params, function(error, result){
// save the token
})
token = OAuth2.AccessToken.create(json_token);
if (token.expired()) {
token.refresh(function(error, refreshedToken) { token = refreshedToken; })
}
Currently the Authorization Code and Resource Owner Password Credentials grant types have helper strategy classes that simplify client use. They are available via the #authCode and #password methods respectively.
// Authorization code flow var authURL = client.authCode.authorizeURL({ redirect_uri: 'http://localhost:3000/callback'); var token = client.authCode.getToken({ code: 'authorization-code', redirectURI: 'http://localhost:3000/callback' }, callback);
// Password credentials flow var token = client.password.getToken({ username: 'username', 'password': 'password' }, callback);
If the functions fails an error object is passed as first argument to the callback. The body response object is always the last argument.
Exceptions are raised when a 4xx or 5xx status code is returned.
SimpleOAtuh2.Error
Through the error message attribute you can access the JSON representation.
client.authCode.getToken(function(error, token) {
if (error) { console.log(error.message); }
});
Fork the repo on github and send a pull requests with topic branches. Do not forget to provide specs to your contribution.
- Fork and clone the repository (
dev
branch). - Run
npm install
for dependencies. - Run
make test
to execute all specs. - Run
make test-watch
to auto execute all specs when a file change.
Follow github guidelines.
Use the issue tracker for bugs. Mail or Tweet us for any idea that can improve the project.
Special thanks to the following people for submitting patches.
See CHANGELOG