lib/passport-weibo/strategy.js
function Strategy(options, verify) {
  options = options || {};
  options.authorizationURL = options.authorizationURL || 'https://api.weibo.com/oauth2/authorize';
  options.tokenURL = options.tokenURL || 'https://api.weibo.com/oauth2/access_token';
  options.scopeSeparator = options.scopeSeparator || ',';
  options.customHeaders = options.customHeaders || {};
  if (!options.customHeaders['User-Agent']) {
    options.customHeaders['User-Agent'] = options.userAgent || 'passport-weibo';
  }

  OAuth2Strategy.call(this, options, verify);
  this.name = 'weibo';
  this._getuidAPI = options.getuidAPI || 'https://api.weibo.com/2/account/get_uid.json';
  this._getProfileAPI = options.getProfileAPI || 'https://api.weibo.com/2/users/show.json';

}
function Strategy(options, verify) {
  options = options || {};
  options.authorizationURL = options.authorizationURL || 'https://api.weibo.com/oauth2/authorize';
  options.tokenURL = options.tokenURL || 'https://api.weibo.com/oauth2/access_token';
  options.scopeSeparator = options.scopeSeparator || ',';
  options.customHeaders = options.customHeaders || {};
  if (!options.customHeaders['User-Agent']) {
    options.customHeaders['User-Agent'] = options.userAgent || 'passport-weibo';
  }

  OAuth2Strategy.call(this, options, verify);
  this.name = 'weibo';
  this._getuidAPI = options.getuidAPI || 'https://api.weibo.com/2/account/get_uid.json';
  this._getProfileAPI = options.getProfileAPI || 'https://api.weibo.com/2/users/show.json';

}
`Strategy` constructor.

The Weibo authentication strategy authenticates requests by delegating to
Weibo 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 occured, `err` should be set.

Options:
- `clientID`      your Weibo application's Client ID
- `clientSecret`  your Weibo application's Client Secret
- `callbackURL`   URL to which Weibo will redirect the user after granting authorization
- `scope`         array of permission scopes to request.  valid scopes include:
'user', 'public_repo', 'repo', 'gist', or none.
(see http://open.weibo.com/wiki/Oauth/en#User_Authentication for more info)

Examples:

passport.use(new WeiboStrategy({
clientID: '123-456-789',
clientSecret: 'shhh-its-a-secret'
callbackURL: 'https://www.example.net/auth/weibo/callback'
},
function(accessToken, refreshToken, profile, done) {
User.findOrCreate(..., function (err, user) {
done(err, user);
});
}
));

@param {Object} options
@param {Function} verify
@api public