docs: function getProvider(providerName, providerConfig) {
          return _.extend({}, providerConfig.opts, {
              profile: function profile(credentials, params, get, callback) {
                  var proof = null;
  
                  /* eslint camelcase:0 */
                  if (providerConfig.useProof) {
                      proof = {
                          appsecret_proof: crypto
                              .createHmac('sha256', this.clientSecret)
                              .update(credentials.token)
                              .digest('hex')
                      };
                  }
  
                  get(providerConfig.url, proof, function (data) {
                      credentials.profile = {
                          authType:           providerName,
                          email:              data.email,
                          emailLower:         data.email && data.email.toLowerCase(),
                          emailConfirmed:     data.verified,
                          name: {
                              firstName:      data.given_name || '',
                              lastName:       data.family_name || '',
                              displayName:    data.name || ''
                          }
                      };
  
                      if (providerName === 'google') {
                          credentials.profile.profileImg = data.picture;
                          credentials.profile.googleAuthData = data;
                      }
                      else if (providerName === 'facebook') {
                          credentials.profile.profileImg = 'https://graph.facebook.com/' +
                              data.id + '/picture?width=80&height=80';
                          credentials.profile.fbAuthData = data;
                      }
  
                      return callback();
                  });
              }
          });
      }