passport-hapi-oauth

1.5.6 • Public • Published

Passport Hapi OAuth

NPM

A simple wrapper to work as a connector between passport js OAuth strategies and the hapi request api.

It is configured to work with following OAuth providers: Google, Outlook and Facebook.

Make sure your app has enough permissions for OAuth login (e.g. Any application that calls Google APIs needs to enable APIs in the API Console).

Install

$ npm install passport-hapi-oauth --save

Usage


Instantiation

import HapiPassport from 'passport-hapi-oauth';
 
// simple
const googleOAuth = new HapiPassport('GoogleStrategy', {
    clientID: 'YOUR_CLIENT_ID',
    clientSecret: 'YOUR_CLIENT_SECRET',
    callbackURL: 'YOUR_CALLBACK_URL'
});
 
// advanced
const googleOAuth = new HapiPassport('GoogleStrategy', {
    clientID: 'YOUR_CLIENT_ID',
    clientSecret: 'YOUR_CLIENT_SECRET',
    callbackURL: 'YOUR_CALLBACK_URL'
}, {scope: ['email', 'profile', 'openid']});
 
arguments values
strategy(required) GoogleStrategy, OutlookStrategy or FacebookStrategy
config (required) { clientID: 'YOUR_APP_ID', clientSecret: 'YOUR_APP_SECRET', callbackURL: 'YOUR_CALLBACK_URL'}
scope* (optional) { scope: [ 'SCOPE_1' , 'SCOPE_2' , ... ] }

*Read OAuth provider permissions to understand what scopes can be used.


Route Hanlders

1st route to sign in:

server.route({
    method: 'GET',
    path: '/auth/google',
    handler: (request, reply) => {
        googleOAuth.authenticate(request, (url) => {
            // set reply and then redirect
            reply({
                status: 'success'
            }).redirect(url);
        });
    }
});

2nd route to handle callbacks:

server.route({
    method: 'GET',
    path: '/auth/google/login/callback',
    handler: (request, reply) => {
        googleOAuth.authenticateCallBack(request, (err, userData) => {
            if (err) {
                // handle error
            } else {
                // AuthProvider login successful
                // parse userData and authenticate user
            }
        });
    }
});

Readme

Keywords

Package Sidebar

Install

npm i passport-hapi-oauth

Weekly Downloads

49

Version

1.5.6

License

MIT

Unpacked Size

8.2 kB

Total Files

3

Last publish

Collaborators

  • soheil