New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

passport-hapi-oauth

Package Overview
Dependencies
Maintainers
1
Versions
24
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

passport-hapi-oauth

A Simple wrapper to work as a connector between [passport js OAuth strategies](http://www.passportjs.org/) and the [hapi request api](https://hapijs.com/api).

latest
Source
npmnpm
Version
1.5.6
Version published
Weekly downloads
0
-100%
Maintainers
1
Weekly downloads
 
Created
Source

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']});

argumentsvalues
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								
            }
        });
    }
});

Keywords

passport

FAQs

Package last updated on 16 Apr 2018

Related posts