fetchPublicKey()

in sample/app/server/verify-iap-jwt.js [81:105]


  fetchPublicKey(kid) {
    if (typeof this.publicKeys !== 'undefined' &&
        this.publicKeys.hasOwnProperty(kid)) {
      return Promise.resolve(this.publicKeys[kid]);
    }
    return new Promise((resolve, reject) => {
      request({
        url: PUBLIC_KEY_URL,
        json: true
      }, (error, response, body) => {
        if (!error && response.statusCode === 200) {
          // Cache public keys.
          this.publicKeys = body;
          if (this.publicKeys.hasOwnProperty(kid)) {
            // Return the corresponding key.
            resolve(body[kid]);
          } else {
            reject('IAP JWT has "kid" claim which does not correspond to a known public key.');
          }
        } else {
          reject(error);
        }
      });
    });
  }