docs: function JwtAuthenticationResult(application,data) {
    if (!(this instanceof JwtAuthenticationResult)) {
      return new JwtAuthenticationResult(application,data);
    }
  
    /**
     * @name JwtAuthenticationResult#stormpathAccessTokenHref
     *
     * @description The HREF of the {@link AccessToken} resource.
     *
     * @type {String}
     */
  
    /*
      Take all the properties of the data response, and put them
      on this object - but convert underscores to camelcase because
      that's the node way bro.
     */
    Object.keys(data).reduce(function(a,key){
      var newKey = key.replace(/_([A-Za-z])/g, function (g) { return g[1].toUpperCase(); });
      a[newKey] = data[key];
      return a;
    },this);
  
    /*
      Assign application after the key reduction above,
      otherwise it will get replaced with the object literal
      from the response data.
     */
    this.application = application;
    var apiKey = application.dataStore.requestExecutor.options.client.apiKey;
  
    /**
     * @name JwtAuthenticationResult#accessToken
     *
     * @description
     *
     * An object that allows you to inspect the body, claims, and header of the
     * access token.
     *
     * @type {Jwt}
     */
  
    if(this.accessToken){
      this.accessToken = nJwt.verify(this.accessToken, apiKey.secret);
      this.account = {
        href: this.accessToken.body.sub
      };
    }
  
    /**
     * @name JwtAuthenticationResult#refreshToken
     *
     * @description
     *
     * An object that allows you to inspect the body, claims, and header of the
     * refresh token.  Note:  the `client_credentials` workflow does not use
     * refresh tokens.
     *
     * @type {Jwt}
     */
  
    if(this.refreshToken){
      this.refreshToken = nJwt.verify(this.refreshToken, apiKey.secret);
    }
  }