UNPKG

passport-google-oidc

Version:

Google authentication strategy for Passport using OpenID Connect.

59 lines (52 loc) 1.85 kB
// Load modules. var OpenIDConnectStrategy = require('passport-openidconnect') , util = require('util'); /** * `Strategy` constructor. * * The Google authentication strategy authenticates requests by delegating to * Google using the OAuth 2.0 protocol. * * Applications must supply a `verify` callback which accepts an `accessToken`, * `refreshToken` and service-specific `profile`, and then calls the `cb` * callback supplying a `user`, which should be set to `false` if the * credentials are not valid. If an exception occured, `err` should be set. * * Options: * - `clientID` your Google application's client id * - `clientSecret` your Google application's client secret * - `callbackURL` URL to which Google will redirect the user after granting authorization * * Examples: * * passport.use(new GoogleStrategy({ * clientID: '123-456-789', * clientSecret: 'shhh-its-a-secret' * callbackURL: 'https://www.example.net/auth/google/callback' * }, * function(accessToken, refreshToken, profile, cb) { * User.findOrCreate(..., function (err, user) { * cb(err, user); * }); * } * )); * * @constructor * @param {object} options * @param {function} verify * @access public */ function Strategy(options, verify) { options = options || {}; options.issuer = options.issuer || 'https://accounts.google.com'; options.authorizationURL = options.authorizationURL || 'https://accounts.google.com/o/oauth2/v2/auth'; options.tokenURL = options.tokenURL || 'https://www.googleapis.com/oauth2/v4/token'; OpenIDConnectStrategy.call(this, options, verify); this.name = 'google'; } // Inherit from `OpenIDConnectStrategy`. util.inherits(Strategy, OpenIDConnectStrategy); /** * Expose `Strategy`. */ module.exports = Strategy;