Adding other login providers

Now that we have all the general infrastructure for authentication, adding additional providers is easy. Let's add Facebook authentication as an example. First, we need to install the relevant Passport strategy:

> npm install passport-facebook --save

Then we can update our Passport config file from src/config/passport.js as follows:

...
const FacebookStrategy = require('passport-facebook').Strategy;

module.exports = (usersService) => {
    const providerCallback = providerName =>
        function(req, token, tokenSecret, profile, done) {
            usersService.getOrCreate(providerName, profile.id,
                    profile.username || profile.displayName)
                .then(user => done(null, user), done);
        }; if(process.env.TWITTER_API_KEY && process.env.TWITTER_API_SECRET) ...

Get Learning Node.js for .NET Developers now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.