/**
 * Module dependencies.
 */
var util = require('util')
  , OAuth2Strategy = require('passport-oauth').OAuth2Strategy
  , InternalOAuthError = require('passport-oauth').InternalOAuthError;


/**
 * `Strategy` constructor.
 *
 * The HumanAPI authentication strategy authenticates requests by delegating to
 * HumanAPI 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 `done`
 * callback supplying a `user`, which should be set to `false` if the
 * credentials are not valid.  If an exception occurred, `err` should be set.
 *
 * Options:
 *   - `clientID`      your HumanAPI application's App ID
 *   - `clientSecret`  your HumanAPI application's App Secret
 *   - `callbackURL`   URL to which HumanAPI will redirect the user after granting authorization
 *
 * Examples:
 *
 *     passport.use(new HumanApiStrategy({
 *         clientID: '-unique-identifier-',
 *         clientSecret: '-hash-of-something-'
 *         callbackURL: 'https://www.example.com/auth/humanapi/callback',
 *       },
 *       function(accessToken, refreshToken, profile, done) {
 *         User.findOrCreate(..., function (err, user) {
 *           done(err, user);
 *         });
 *       }
 *     ));
 *
 * @param {Object} options
 * @param {Function} verify
 * @api public
 */
function Strategy(options, verify) {
  options = options || {};
  options.authorizationURL = options.authorizationURL || 'https://user.humanapi.co/oauth/authorize';
  options.tokenURL = options.tokenURL || 'https://user.humanapi.co/oauth/token';
  options.scopeSeparator = options.scopeSeparator || '%20';

  OAuth2Strategy.call(this, options, verify);
  this.name = 'humanapi';
}

/**
 * Inherit from `OAuth2Strategy`.
 */
util.inherits(Strategy, OAuth2Strategy);

/**
 * Retrieve user profile from HumanAPI. __REQUIRES__ the `names` scope or it will fail.
 *
 * This function constructs a normalized profile, with the following properties:
 *
 *   - `provider`         always set to `humanapi`
 *   - `id`               the user's HumanAPI ID
 *   - `displayName`      the user's full name
 *   - `firstName`        the user's first name
 *   - `lastName`         the user's last name
 *
 * @param {String} accessToken
 * @param {Function} done
 * @api protected
 */
Strategy.prototype.userProfile = function(accessToken, done) {

  this._oauth2.getProtectedResource('https://api.humanapi.co/v1/human/profile', accessToken, function (err, body, res) {
    if (err) { return done(new InternalOAuthError('failed to fetch user profiles', err)); }

    try {
      var json = JSON.parse(body);

      var profile = { provider: 'humanapi' };
      profile.id = json.userId;
      profile.email = json.email;
      profile.defaultTimeZone = json.defaultTimeZone;
      profile._raw = body;
      profile._json = json;

      done(null, profile);
    } catch(e) {
      done(e);
    }
  });
}


/**
 * Expose `Strategy`.
 */
module.exports = Strategy;
@@ -969,27 +969,25 @@
 ID: 
-'-unique-identifier
+     '-the-app-id
 -',%0A
@@ -1014,28 +1014,26 @@
 ret:
+ 
  '-
-hash-of-something
+the-app-secret
 -'%0A 
@@ -1054,16 +1054,18 @@
 backURL:
+  
  'https:
@@ -1895,56 +1895,8 @@
 API.
- __REQUIRES__ the %60names%60 scope or it will fail.
 %0A *%0A
@@ -2091,140 +2091,104 @@
  - %60
-displayName%60      the user's full name%0A *   - %60firstName%60        the user's first name%0A *   - %60lastName%60         the user's last nam
+email%60            the user's email address%0A *   - %60defaultTimeZone%60  the user's default time zon
 e%0A *
@@ -2918,16 +2918,16 @@
 y%60.%0A */%0A
-
 module.e
@@ -2944,8 +2944,9 @@
 trategy;
+%0A

Update strategy.js