OAuth 2.0 client password authentication strategy for Passport.
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib update to use passport-strategy Jun 24, 2014
test update to use passport-strategy Jun 24, 2014
.gitignore Update ignore files. Feb 10, 2013
.npmignore Update ignore files. Feb 10, 2013
.travis.yml Test on Node 0.8 using Travis CI. Feb 10, 2013
LICENSE Update project metadata. Feb 10, 2013
Makefile Update project metadata. Feb 10, 2013
README.md Add code sponsor placement. Sep 17, 2017
package.json Bump version to 0.1.2. Sep 2, 2014

README.md

passport-oauth2-client-password

OAuth 2.0 client password authentication strategy for Passport.

This module lets you authenticate requests containing client credentials in the request body, as defined by the OAuth 2.0 specification. These credentials are typically used protect the token endpoint and used as an alternative to HTTP Basic authentication.

Install

$ npm install passport-oauth2-client-password

Usage

Configure Strategy

The OAuth 2.0 client password authentication strategy authenticates clients using a client ID and client secret. The strategy requires a verify callback, which accepts those credentials and calls done providing a client.

passport.use(new ClientPasswordStrategy(
  function(clientId, clientSecret, done) {
    Clients.findOne({ clientId: clientId }, function (err, client) {
      if (err) { return done(err); }
      if (!client) { return done(null, false); }
      if (client.clientSecret != clientSecret) { return done(null, false); }
      return done(null, client);
    });
  }
));

Authenticate Requests

Use passport.authenticate(), specifying the 'oauth2-client-password' strategy, to authenticate requests. This strategy is typically used in combination with HTTP Basic authentication (as provided by passport-http), allowing clients to include credentials in the request body.

For example, as route middleware in an Express application, using OAuth2orize middleware to implement the token endpoint:

app.get('/profile', 
  passport.authenticate(['basic', 'oauth2-client-password'], { session: false }),
  oauth2orize.token());

Examples

The example included with OAuth2orize demonstrates how to implement a complete OAuth 2.0 authorization server. ClientPasswordStrategy is used to authenticate clients as they request access tokens from the token endpoint.

Tests

$ npm install --dev
$ make test

Build Status

Credits

License

The MIT License

Copyright (c) 2012-2013 Jared Hanson <http://jaredhanson.net/>

Sponsor