code: function Strategy(options, verify) {
    if (typeof options == 'function') {
      verify = options;
      options = {
        server: {
          url : ''
        },
        usernameField: 'user',
        passwordField: 'pwd',
        base: '',
        search: {
          filter: ''
        },
        authOnly: false,
        authMode: 1,        // 0 win, 1 Unix (linux, Solaris, ...)
        uidTag: 'uid',       // Linux OpenLDAP 'uid', Sun Solaris 'cn'
        debug: false
      };
    }
    if (!verify) throw new Error('LDAP authentication strategy requires a verify function');
  
    passport.Strategy.call(this);
  
    this.name = 'ldap';
    this._verify = verify;
    this._options = options;
  }
docs: `Strategy` constructor.
  
  An LDAP authentication strategy authenticates requests by delegating to the
  given ldap server using the openldap protocol.
  
  Applications must supply a `verify` callback which accepts a user `profile` entry
  from the directory, and then calls the `done` 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:
  - `server`  ldap server connection options - http://ldapjs.org/client.html#create-a-client
  - `base`    the base DN to search against
  - `search`  an object of containing search options - http://ldapjs.org/client.html#search
  
  Examples:
  
  passport.use(new LDAPStrategy({
  server: {
  url: 'ldap://0.0.0.0:1389'
  },
  base: 'cn=users,dc=example,dc=local',
  search: {
  filter: '(&(l=Seattle)(email=*@foo.com))',
  }
  },
  function(profile, done) {
  return done(null, profile);
  }
  ));
  
  @param {Object} options
  @param {Function} verify
  @api public