lib/passport-statusnet/strategy.js
function Strategy(options, verify) {
  options = options || {};
  if (options.statusnet === undefined) {
    throw new Error("A StatusNet instance is required (e.g. identi.ca)");
  }
  this.prefix = "https://"+options.statusnet+"/api";
  options.requestTokenURL = options.requestTokenURL || this.prefix+'/oauth/request_token';
  options.accessTokenURL = options.accessTokenURL || this.prefix+'/oauth/access_token';
  options.userAuthorizationURL = options.userAuthorizationURL || this.prefix+'/oauth/authorize';
  options.sessionKey = options.sessionKey || 'oauth:'+options.statusnet;
  
  OAuthStrategy.call(this, options, verify);
  this.name = options.statusnet;
}
function Strategy(options, verify) {
  options = options || {};
  if (options.statusnet === undefined) {
    throw new Error("A StatusNet instance is required (e.g. identi.ca)");
  }
  this.prefix = "https://"+options.statusnet+"/api";
  options.requestTokenURL = options.requestTokenURL || this.prefix+'/oauth/request_token';
  options.accessTokenURL = options.accessTokenURL || this.prefix+'/oauth/access_token';
  options.userAuthorizationURL = options.userAuthorizationURL || this.prefix+'/oauth/authorize';
  options.sessionKey = options.sessionKey || 'oauth:'+options.statusnet;
  
  OAuthStrategy.call(this, options, verify);
  this.name = options.statusnet;
}
`Strategy` constructor.

The StatusNet authentication strategy authenticates requests by delegating to
StatusNet using the OAuth protocol.

Applications must supply a `verify` callback which accepts a `token`,
`tokenSecret` 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:
- `statusnet`       A StatusNet instance (e.g. identi.ca)
- `consumerKey`     identifies client to StatusNet
- `consumerSecret`  secret used to establish ownership of the consumer key
- `callbackURL`     URL to which StatusNet will redirect the user after obtaining authorization

Examples:

passport.use(new StatusNetStrategy({
statusnet: 'example.com'
consumerKey: '123-456-789',
consumerSecret: 'shhh-its-a-secret'
callbackURL: 'https://www.example.net/auth/statusnet/callback'
},
function(token, tokenSecret, profile, done) {
User.findOrCreate(..., function (err, user) {
done(err, user);
});
}
));

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