docs: function refresh (options) {
    options = options || {}
  
    var self = this
    var refreshToken = options.refresh_token
    if (!refreshToken) {
      return Promise.reject(new Error('Missing refresh_token'))
    }
    return new Promise(function (resolve, reject) {
      AccessToken.refresh(refreshToken, {
        issuer: self.issuer,
        client_id: self.client_id,
        client_secret: self.client_secret
      }, function (err, token) {
        if (err) {
          return reject(err)
        }
        AccessToken.verify(token.access_token, {
          key: self.jwks.keys[0],
          issuer: self.issuer
        }, function (err) {
          if (err) {
            return reject(err)
          }
          return resolve(token)
        })
      })
    })
  }