open(options, userData) {
    const provider = extend(true, {}, this.defaults, options);
    const stateName = provider.name + '_state';

    if (typeof provider.state === 'function') {
      this.storage.set(stateName, provider.state());
    } else if (typeof provider.state === 'string') {
      this.storage.set(stateName, provider.state);
    }

    const url = provider.authorizationEndpoint + '?' + buildQueryString(this.buildQuery(provider));
    const popup = this.popup.open(url, provider.name, provider.popupOptions);
    const openPopup = this.config.platform === 'mobile' ? popup.eventListener(provider.redirectUri) : popup.pollPopup();

    return openPopup.then(oauthData => {
      if (provider.responseType === 'token' || provider.responseType === 'id_token token' || provider.responseType === 'token id_token') {
        return oauthData;
      }
      if (oauthData.state && oauthData.state !== this.storage.get(stateName)) {
        return Promise.reject('OAuth 2.0 state parameter mismatch.');
      }

      return this.exchangeForToken(oauthData, userData, provider);
    });
  }
  close(options) {
    const provider = extend(true, {}, this.defaults, options);
    const url = provider.logoutEndpoint + '?' + buildQueryString(this.buildLogoutQuery(provider));
    const popup = this.popup.open(url, provider.name, provider.popupOptions);
    const openPopup = this.config.platform === 'mobile' ? popup.eventListener(provider.postLogoutRedirectUri) : popup.pollPopup();

    return openPopup;
  }
function buildFullUri(message) {
    var uri = join(message.baseUri, message.uri), qs;
    if (message.params) {
        qs = buildQueryString(message.params);
        uri = qs ? `${uri}?${qs}` : uri;
    }
    message.fullUri = uri;
}
  buildFullUrl() {
    var url = join(this.baseUrl, this.url);

    if(this.params){
      var qs = buildQueryString(this.params);
      url = qs ? `${url}?${qs}` : url;
    }

    return url;
  }
  RequestMessage.prototype.buildFullUrl = function buildFullUrl() {
    var url = _aureliaPath.join(this.baseUrl, this.url);

    if (this.params) {
      var qs = _aureliaPath.buildQueryString(this.params);
      url = qs ? url + '?' + qs : url;
    }

    return url;
  };
function buildFullUrl(message) {
  var url = _join$buildQueryString.join(message.baseUrl, message.url),
      qs;

  if (message.params) {
    qs = _join$buildQueryString.buildQueryString(message.params);
    url = qs ? '' + url + '?' + qs : url;
  }

  message.fullUrl = url;
}
  buildFullUrl() {
    let absoluteUrl = /^([a-z][a-z0-9+\-.]*:)?\/\//i;
    let url = absoluteUrl.test(this.url) ? this.url : join(this.baseUrl, this.url);

    if (this.params) {
      let qs = buildQueryString(this.params);
      url = qs ? url + (this.url.indexOf('?') < 0 ? '?' : '&') + qs : url;
    }

    return url;
  }
  redirect(redirectUrl, defaultRedirectUrl, query) {
    if (redirectUrl === true) {
      LogManager.getLogger('authentication').warn('DEPRECATED: Setting redirectUrl === true to actually *not redirect* is deprecated. Set redirectUrl === 0 instead.');

      return;
    }

    if (redirectUrl === false) {
      LogManager.getLogger('authentication').warn('BREAKING CHANGE: Setting redirectUrl === false to actually *do redirect* is deprecated. Set redirectUrl to undefined or null to use the defaultRedirectUrl if so desired.');
    }

    if (redirectUrl === 0) {
      return;
    }
    if (typeof redirectUrl === 'string') {
      PLATFORM.location.href = encodeURI(redirectUrl + (query ? `?${ buildQueryString(query) }` : ''));
    } else if (defaultRedirectUrl) {
      PLATFORM.location.href = defaultRedirectUrl + (query ? `?${ buildQueryString(query) }` : '');
    }
  }
Beispiel #9
0
  /**
  * Builds the url to make the request from.
  * @return The constructed url.
  */
  buildFullUrl(): string {
    let absoluteUrl = /^([a-z][a-z0-9+\-.]*:)?\/\//i;
    let url = absoluteUrl.test(this.url) ? this.url : join(this.baseUrl, this.url);

    if (this.params) {
      let qs = buildQueryString(this.params);
      url = qs ? `${url}?${qs}` : url;
    }

    return url;
  }
    return this.config.client.post(serverUrl).then(response => {
      const url = provider.authorizationEndpoint + '?' + buildQueryString(response);

      if (this.config.platform === 'mobile') {
        this.popup = this.popup.open(url, provider.name, provider.popupOptions);
      } else {
        this.popup.popupWindow.location = url;
      }

      const popupListener = this.config.platform === 'mobile' ? this.popup.eventListener(provider.redirectUri) : this.popup.pollPopup();

      return popupListener.then(result => this.exchangeForToken(result, userData, provider));
    });
  RouteRecognizer.prototype.generate = function generate(name, params) {
    var route = this.names[name];
    if (!route) {
      throw new Error('There is no route named ' + name);
    }

    var handler = route.handlers[0].handler;
    if (handler.generationUsesHref) {
      return handler.href;
    }

    var routeParams = Object.assign({}, params);
    var segments = route.segments;
    var consumed = {};
    var output = '';

    for (var i = 0, l = segments.length; i < l; i++) {
      var segment = segments[i];

      if (segment instanceof EpsilonSegment) {
        continue;
      }

      var segmentValue = segment.generate(routeParams, consumed);
      if (segmentValue === null || segmentValue === undefined) {
        if (!segment.optional) {
          throw new Error('A value is required for route parameter \'' + segment.name + '\' in route \'' + name + '\'.');
        }
      } else {
        output += '/';
        output += segmentValue;
      }
    }

    if (output.charAt(0) !== '/') {
      output = '/' + output;
    }

    for (var param in consumed) {
      delete routeParams[param];
    }

    var queryString = buildQueryString(routeParams);
    output += queryString ? '?' + queryString : '';

    return output;
  };
function buildFullUrl(message) {

  var url, qs;
  // Message URL starts with / - as absolute URL
  if (message.url && message.url[0] == '/') {
    url = message.url;
  } else {
    url = join(message.baseUrl, message.url);
  }

  if (message.params) {
    qs = buildQueryString(message.params);
    url = qs ? `${url}?${qs}` : url;
  }

  return url;
}
  /**
  * Generate a path and query string from a route name and params object.
  *
  * @param name The name of the route.
  * @param params The route params to use when populating the pattern.
  *  Properties not required by the pattern will be appended to the query string.
  * @returns The generated absolute path and query string.
  */
  generate(name: string, params: Object): string {
    let route = this.names[name];
    if (!route) {
      throw new Error(`There is no route named ${name}`);
    }

    let handler = route.handlers[0].handler;
    if (handler.href) {
      return handler.href;
    }

    let routeParams = Object.assign({}, params);
    let segments = route.segments;
    let consumed = {};
    let output = '';

    for (let i = 0, l = segments.length; i < l; i++) {
      let segment = segments[i];

      if (segment instanceof EpsilonSegment) {
        continue;
      }

      output += '/';
      let segmentValue = segment.generate(routeParams, consumed);
      if (segmentValue === null || segmentValue === undefined) {
        throw new Error(`A value is required for route parameter '${segment.name}' in route '${name}'.`);
      }

      output += segmentValue;
    }

    if (output.charAt(0) !== '/') {
      output = '/' + output;
    }

    // remove params used in the path and add the rest to the querystring
    for (let param in consumed) {
      delete routeParams[param];
    }

    let queryString = buildQueryString(routeParams);
    output += queryString ? `?${queryString}` : '';

    return output;
  }
function buildFullUrl(message) {

  var url, qs;

  if (message.url && message.url[0] == '/') {
    url = message.url;
  } else {
    url = _join$buildQueryString.join(message.baseUrl, message.url);
  }

  if (message.params) {
    qs = _join$buildQueryString.buildQueryString(message.params);
    url = qs ? '' + url + '?' + qs : url;
  }

  return url;
}