1.5.6 • Published 6 years ago
passport-hapi-oauth v1.5.6
Passport Hapi OAuth
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
}
});
}
});
1.5.6
6 years ago
1.5.5
7 years ago
1.5.4
7 years ago
1.5.3
7 years ago
1.5.2
7 years ago
1.5.1
7 years ago
1.5.0
7 years ago
1.4.0
7 years ago
1.3.0
7 years ago
1.2.3
7 years ago
1.2.2
7 years ago
1.2.1
7 years ago
1.2.0
7 years ago
1.1.8
7 years ago
1.1.7
7 years ago
1.1.6
7 years ago
1.1.5
7 years ago
1.1.4
7 years ago
1.1.3
7 years ago
1.1.2
7 years ago
1.1.1
7 years ago
1.1.0
7 years ago
1.0.1
7 years ago
1.0.0
7 years ago