code: function Strategy(options, verify) {
      options = options || {};
      options.baseOauth2URL = options.baseOauth2URL || baseURL + '/' + apiVersion + '/oauth2';
      options.authorizationURL = options.authorizationURL || options.baseOauth2URL + '/authorize';
      options.tokenURL = options.tokenURL || options.baseOauth2URL + '/token';
      options.scopeSeparator = options.scopeSeparator || ',';
  
      OAuth2Strategy.call(this, options, verify);
      this.name = 'beatsmusic';
  }
docs: `Strategy` constructor.
  
  The Beats Music authentication strategy authenticates requests by delegating to
  Beats Music using the OAuth 2.0 protocol.
  
  Applications must supply a `verify` callback which accepts an `accessToken`,
  `refreshToken` and `beatsmusic` object, which contains additional info as outlined
  here: https://developer.beatsmusic.com/docs/read/getting_started/Web_Server_Applications.
  The callback should then call 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:
  - `clientID`      your Beats Music application's client ID
  - `clientSecret`  your Beats Music application's App Secret
  - `callbackURL`   URL to which Beats Music will redirect the user after granting authorization
  
  Examples:
  BeatsMusicStrategy = require('passport-beatsmusic').Strategy;
  
  ...
  
  passport.use(new BeatsMusicStrategy({
  clientID: '123-456-789',
  clientSecret: 'shhh-its-a-super-secret'
  callbackURL: 'https://www.example.net/auth/beatsmusic/callback'
  },
  function(accessToken, refreshToken, beatsmusic, done) {
  User.findOrCreate(..., function (err, user) {
  done(err, user);
  });
  }
  ));
  
  @param {Object} options
  @param {Function} verify
  @api public