Package Exports
- simple-oauth2
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (simple-oauth2) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Simple OAuth2
Node.js client library for Oauth2
Requirements
Node client library is tested against Node ~0.8.x
Installation
Install the client library using npm:
$ npm install simple-oath2Install the client library using git:
$ git clone git://github.com/andrearegianto/simple-oauth2.git
$ cd simple-oauth2
$ npm installDocumentation
Getting started
Get the Access Token
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' }
OAuth2.AuthCode.getToken(params, function(error, result) {
// save the token
})Refresh the Access Token
token = OAuth2.AccessToken.create(json_token);
if (token.expired()) {
token.refresh(function(error, refreshedToken) { token = refreshedToken; })
}Authorization Grants
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 uri = OAuth2.AuthCode.authorizeURL({ redirect_uri: 'http://localhost:3000/callback');
var token = OAuth2.AuthCode.getToken({ code: 'authorization-code', redirectURI: 'http://localhost:3000/callback' }, callback);
// Password credentials flow
var token = OAuth2.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.
Errors
Exceptions are raised when a 4xx or 5xx status code is returned.
OAtuh2.HTTPErrorThrough the error message attribute you can access the JSON representation
based on HTTP status and error message.
OAuth2.AuthCode.getToken(function(error, token) {
if (error) { console.log(error.message); }
});Contributing
Fork the repo on github and send a pull requests with topic branches. Do not forget to provide specs to your contribution.
Running specs
- Fork and clone the repository (
devbranch). - Run
npm installfor dependencies. - Run
make testto execute all specs. - Run
make test-watchto auto execute all specs when a file change.
Coding guidelines
Follow github guidelines.
Feedback
Use the issue tracker for bugs. Mail or Tweet us for any idea that can improve the project.
Links
Authors
Contributors
Special thanks to the following people for submitting patches.
Changelog
See CHANGELOG