Skip to content
This repository has been archived by the owner on Jan 18, 2024. It is now read-only.

briebug/passport-custom

 
 

Repository files navigation

passport-custom

Build Coverage Status Quality Dependencies

Passport strategy for authenticating with custom logic.

This module lets you authenticate using custom logic in your Node.js applications. It is based on passport-local module by Jared Hanson. By plugging into Passport, custom authentication can be easily and unobtrusively integrated into any application or framework that supports Connect-style middleware, including Express.

Install

$ npm install passport-custom

Usage

Configure Strategy

The custom authentication strategy authenticates users by custom logic of your choosing. The strategy requires a verify callback, which is where the custom logic goes and calls done providing a user. Note that, req is always passed as the first parameter to the verify callback.

Here is the pseudo code:

import passportCustom from 'passport-custom';
const CustomStrategy = passportCustom.Strategy;

passport.use('strategy-name', new CustomStrategy(
  {},
  function(req, callback) {
    // Do your custom user finding logic here, or set to false based on req object
    callback(null, user);
  }
));

And a basic example:

passport.use(new CustomStrategy(
  function(req, done) {
    User.findOne({
      username: req.body.username
    }, function (err, user) {
      done(err, user);
    });
  }
));

Authenticate Requests

Use passport.authenticate(), specifying the 'custom' strategy (or whatever you named the strategy upon registration), to authenticate requests.

For example, as route middleware in an Express application:

app.post('/login',
  passport.authenticate('custom', { failureRedirect: '/login' }),
  function(req, res) {
    res.redirect('/');
  }
);

Tests

$ npm install
$ npm test

Credits

License

The MIT License

Copyright (c) 2014-2015 Mike Bell

About

Custom logic authentication strategy for Passport and Node.js.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 70.4%
  • Makefile 29.6%