docs: function(auth, password, options) {
        if (isObject(auth)) options = password;
        else auth = {email: auth, password: password};
        options = opts(this, options);
        options.applevel = true;
  
        // Wipe out existing login information.
        this.options.email = null;
        this.options.username = null;
        this.options.session_token = null;
  
        if (options.savelogin) {
          store('email', null, this.options.appid);
          store('username', null, this.options.appid);
          store('session_token', null, this.options.appid);
        }
  
        var payload = JSON.stringify({
          username: auth.username,
          email: auth.email,
          password: auth.password
        })
  
        var self = this;
        return new APICall({
          action: 'account/login',
          type: 'POST',
          options: options,
          data: payload,
          processResponse: APICall.basicResponse
        }).on('success', function(data) {
          if (options.savelogin) {
            store('email', auth.email, self.options.appid);
            store('username', auth.username, self.options.appid);
            store('session_token', data.session_token, self.options.appid);
          }
          self.options.email = auth.email;
          self.options.username = auth.username;
          self.options.session_token = data.session_token;
        });
      }