1.8.0 • Published 10 months ago

passport-oauth2 v1.8.0

Weekly downloads
333,372
License
MIT
Repository
github
Last release
10 months ago

passport-oauth2

General-purpose OAuth 2.0 authentication strategy for Passport.

This module lets you authenticate using OAuth 2.0 in your Node.js applications. By plugging into Passport, OAuth 2.0-based sign in can be easily and unobtrusively integrated into any application or framework that supports Connect-style middleware, including Express.

Note that this strategy provides generic OAuth 2.0 support. In many cases, a provider-specific strategy can be used instead, which cuts down on unnecessary configuration, and accommodates any provider-specific quirks. See the list for supported providers.

Developers who need to implement authentication against an OAuth 2.0 provider that is not already supported are encouraged to sub-class this strategy. If you choose to open source the new provider-specific strategy, please add it to the list so other people can find it.

:brain: Understanding OAuth 2.0 • :heart: Sponsors



npm build coverage ...

Install

$ npm install passport-oauth2

Usage

Configure Strategy

The OAuth 2.0 authentication strategy authenticates users using a third-party account and OAuth 2.0 tokens. The provider's OAuth 2.0 endpoints, as well as the client identifer and secret, are specified as options. The strategy requires a verify callback, which receives an access token and profile, and calls cb providing a user.

passport.use(new OAuth2Strategy({
    authorizationURL: 'https://www.example.com/oauth2/authorize',
    tokenURL: 'https://www.example.com/oauth2/token',
    clientID: EXAMPLE_CLIENT_ID,
    clientSecret: EXAMPLE_CLIENT_SECRET,
    callbackURL: "http://localhost:3000/auth/example/callback"
  },
  function(accessToken, refreshToken, profile, cb) {
    User.findOrCreate({ exampleId: profile.id }, function (err, user) {
      return cb(err, user);
    });
  }
));

Authenticate Requests

Use passport.authenticate(), specifying the 'oauth2' strategy, to authenticate requests.

For example, as route middleware in an Express application:

app.get('/auth/example',
  passport.authenticate('oauth2'));

app.get('/auth/example/callback',
  passport.authenticate('oauth2', { failureRedirect: '/login' }),
  function(req, res) {
    // Successful authentication, redirect home.
    res.redirect('/');
  });

Related Modules

Contributing

Tests

The test suite is located in the test/ directory. All new features are expected to have corresponding test cases. Ensure that the complete test suite passes by executing:

$ make test

Coverage

All new feature development is expected to have test coverage. Patches that increse test coverage are happily accepted. Coverage reports can be viewed by executing:

$ make test-cov
$ make view-cov

License

The MIT License

Copyright (c) 2011-2016 Jared Hanson [http://jaredhanson.net/](http://jaredhanson.net/)

hadith-apppassport-likecoin@ajayaldo/passport-cognito-oauth2passport-aws-cognito-oauth2passport-twitch-v5node-vk-auth-apinode-vkauther-prism-webfishsouptest-test-test-fishs@mirohq/passport-miro@juris710/passport-slackpassport-pushbulletsynaptix.js@open-cluster-management/security-middlewaresurf2gather-backendpassport-act-onpassport-mykoobpassport-omgauthpassport-windowslive-contactsinfinity-oauth@infinitebrahmanuniverse/nolb-passport-o@paiondata/nextwikipassport-authsiderpassport-monzotwitch-oauth-passport@everything-registry/sub-chunk-2414tensowiki-security-passportjsscrapoxyrm-authenticatorsportily-react-scriptssecid-canvassecuregatesth-passport-linkedin-oauth2ticket-pleasevkontakte-passportvaltechonepagepassport-facebook-rwkymedusa-plugin-authmedusa-plugin-kobil-openidmerinoml-passport-weixinmod-passport-robloxlilypadloopback-component-ipnp-authidcs-passport-authentication-strategylp-clever-passportmac-authorizationlegolaskroknet-passport-google-oauthkuzzle-plugin-auth-githubkuzzle-plugin-auth-passport-oauthhslayers-serveri3po-passport-yahoo-oauth2kayzmygenericapiservernaf-passport-wxworklvconnect-passportmaulana-oauthmds-openidmds-auth-keycloaknodebb-plugin-sso-baitedanodebb-plugin-dingtalk-loginnodebb-plugin-dingtalk-login-businessnodebb-plugin-fusionauth-oidcnodebb-plugin-fusionauth-tahalufopenshift-auth-proxyopen-collaboration-serverp-gh-boardsharepotionselleroe-component-passportnexxtopianexxtopia-github-authneykaperiodicjs.ext.oauth2clientnode-passport-dingtalkpassport-pipedrivepassport-pixivpassport-planningcenter-oauth2passport-playstrategypassport-plm-oauth2passport-ploginpassport-polarpassport-patreonpassport-paycopassport-google-oauth3passport-ground-truthpassport-gumroadpassport-phonegap-buildpassport-polkaspotspassport-poniversepassport-pr0grammpassport-predixpassport-processonpassport-product-huntpassport-producthuntpassport-prozpassport-rdio-oauth2passport-real-debridpassport-redbooth
1.8.0

10 months ago

1.7.0

2 years ago

1.6.1

3 years ago

1.6.0

3 years ago

1.5.0

6 years ago

1.4.0

8 years ago

1.3.0

9 years ago

1.2.0

9 years ago

1.1.2

11 years ago

1.1.1

11 years ago

1.1.0

11 years ago

1.0.0

11 years ago