Socket
Socket
Sign inDemoInstall

passport-openid

Package Overview
Dependencies
49
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    passport-openid

OpenID authentication strategy for Passport.


Version published
Weekly downloads
6.3K
increased by8.74%
Maintainers
1
Install size
4.10 MB
Created
Weekly downloads
 

Readme

Source

Passport-OpenID

Passport strategy for authenticating with OpenID.

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

Install

$ npm install passport-openid

Usage

Configure Strategy

The OpenID authentication strategy authenticates users using an OpenID identifier. The strategy requires a validate callback, which accepts this identifier and calls done providing a user. Additionally, options can be supplied to specify a return URL and realm.

passport.use(new OpenIDStrategy({
    returnURL: 'http://localhost:3000/auth/openid/return',
    realm: 'http://localhost:3000/'
  },
  function(identifier, done) {
    User.findByOpenID({ openId: identifier }, function (err, user) {
      return done(err, user);
    });
  }
));
Authenticate Requests

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

For example, as route middleware in an Express application:

app.post('/auth/openid',
  passport.authenticate('openid'));

app.get('/auth/openid/return', 
  passport.authenticate('openid', { failureRedirect: '/login' }),
  function(req, res) {
    // Successful authentication, redirect home.
    res.redirect('/');
  });
  
Saving Associations

Associations between a relying party and an OpenID provider are used to verify subsequent protocol messages and reduce round trips. In order to take advantage of this, an application must store these associations. This can be done by registering functions with saveAssociation and loadAssociation.

strategy.saveAssociation(function(handle, provider, algorithm, secret, expiresIn, done) {
  // custom storage implementation
  saveAssoc(handle, provider, algorithm, secret, expiresIn, function(err) {
    if (err) { return done(err) }
    return done();
  });
});

strategy.loadAssociation(function(handle, done) {
  // custom retrieval implementation
  loadAssoc(handle, function(err, provider, algorithm, secret) {
    if (err) { return done(err) }
    return done(null, provider, algorithm, secret)
  });
});

Examples

For a complete, working example, refer to the signon example.

Strategies using OpenID

Strategy
Cloud Foundry UAA (OpenID Connect)
Google
Steam
Yahoo!

Tests

$ npm install --dev
$ make test

Build Status

Credits

License

The MIT License

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

Keywords

FAQs

Last updated on 24 Sep 2015

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc