0.1.1 • Published 5 years ago

passport-local-multifield v0.1.1

Weekly downloads
92
License
MIT
Repository
github
Last release
5 years ago

passport-local-multifield

The enhancement of passport-local for multi-field form, more than two fields such as username and password.

Usage

Mapping the fields from req.body or req.query:

passport.use(new MultiFieldLocalStrategy(
    {
        fields: ['username', 'password', 'token'],
    },
    function(data, done) {
        User.findOne({ username: data.username }, function(err, user) {
            if (err) { return done(err); }
            else if (!user) { return done(null, false); }
            else if (!user.verifyPasswordAndToken(data.password, data.token)) { return done(null, false); }
            return done(null, user);
        });
    },
));

With mapping object:

passport.use(new MultiFieldLocalStrategy(
    {
        fields: {
            username: 'account',
            password: 'passwd',
            token: 'accessToken',
        },
    },
    function(data, done) {
        // ...
    },
));

Passing the request object into verify callback:

passport.use(new MultiFieldLocalStrategy(
    {
        fields: ['username', 'password', 'token'],
        passReqToCallback: true,
    },
    function(req, data, done) {
        // ...
    },
));

Authenicating request in Express:

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