keycloak-auth-utils

Grant

constructor
Grant()

Option name Type Description
grant Object The `Grant` to copy, or a simple `Object` with similar fields.

Construct a new grant.

The passed in argument may be another Grant, or any object with
at least access_token, and optionally refresh_token and id_token,
token_type, and expires_in. Each token should be an instance of
Token if present.

If the passed in object contains a field named __raw that is also stashed
away as the verbatim raw String data of the grant.

function Grant(grant) {
  this.update( grant );
}

update

method
Grant.prototype.update()

Update this grant in-place given data in another grant.

This is used to avoid making client perform extra-bookkeeping
to maintain the up-to-date/refreshed grant-set.

Grant.prototype.update = function(grant) {
  // intentional naming with under_scores instead of
  // CamelCase to match both Keycloak's grant JSON
  // and to allow new Grant(new Grant(kc)) copy-ctor

  this.access_token  = grant.access_token;
  this.refresh_token = grant.refresh_token;
  this.id_token      = grant.id_token;

  this.token_type    = grant.token_type;
  this.expires_in    = grant.expires_in;
  this.__raw         = grant.__raw;
};

toString

method
Grant.prototype.toString()

Returns the raw String of the grant, if available.

If the raw string is unavailable (due to programatic construction)
then undefined is returned.

Grant.prototype.toString = function() {
  return this.__raw;
};

isExpired

method
Grant.prototype.isExpired() ->boolean

Determine if this grant is expired/out-of-date.

Determination is made based upon the expiration status of the access_token.

An expired grant may be possible to refresh, if a valid
refresh_token is available.

Grant.prototype.isExpired = function() {
  if ( ! this.access_token ) {
    return true;
  }
  return this.access_token.isExpired();
};

module.exports = Grant;