@dbg-riskit/angular-auth
Version:
71 lines • 9.61 kB
JavaScript
// @dynamic
export class RequestUtils {
static get locationHref() {
return window.location.href;
}
static set locationHref(href) {
window.location.href = href;
}
static getURLPath(href) {
const link = document.createElement('a');
link.href = href;
return link.pathname;
}
static getOrigin() {
const port = window.location.port ? `:${window.location.port}` : '';
return window.location.origin || (`${window.location.protocol}//${window.location.hostname}${port}`);
}
static getBaseURL(location, relativeURL = '/') {
let baseURL = '';
if (location) {
baseURL = RequestUtils.getURLPath(location.prepareExternalUrl('/'));
}
if (!baseURL.startsWith('/')) {
baseURL = '/' + baseURL;
}
if (!baseURL.endsWith('/')) {
baseURL += '/';
}
if (relativeURL.startsWith('/')) {
relativeURL = relativeURL.substring(1);
}
const origin = RequestUtils.getOrigin();
return origin + baseURL + relativeURL;
}
static getQueryParam(name) {
const url = RequestUtils.locationHref;
name = name.replace(/[\[\]]/g, '\\$&');
const regex = new RegExp(`[?#&]${name}(=([^&#]*)|&|#|$)`);
const results = regex.exec(url);
if (!results) {
return null;
}
if (!results[2]) {
return '';
}
return decodeURIComponent(results[2].replace(/\+/g, ' '));
}
static getOpenIDQueryParams() {
const error = RequestUtils.getQueryParam('error');
const errorDesc = RequestUtils.getQueryParam('error_description');
const code = RequestUtils.getQueryParam('code');
const idToken = RequestUtils.getQueryParam('id_token');
const accessToken = RequestUtils.getQueryParam('access_token');
return {
error,
errorDesc,
code,
id_token: idToken,
access_token: accessToken
};
}
static hasOpenIDQueryParams() {
const params = RequestUtils.getOpenIDQueryParams();
return params.error != null
|| params.errorDesc != null
|| params.code != null
|| params.id_token != null
|| params.access_token != null;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BrZy9kYmctcmlza2l0L2FuZ3VsYXItYXV0aC9zcmMvbGliL3JlcXVlc3QudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsV0FBVztBQUNYLE1BQU0sT0FBTyxZQUFZO0lBRWQsTUFBTSxLQUFLLFlBQVk7UUFDMUIsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztJQUNoQyxDQUFDO0lBRU0sTUFBTSxLQUFLLFlBQVksQ0FBQyxJQUFZO1FBQ3ZDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNoQyxDQUFDO0lBRU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFZO1FBQ2xDLE1BQU0sSUFBSSxHQUFzQixRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRU0sTUFBTSxDQUFDLFNBQVM7UUFDbkIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3BFLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDLENBQUM7SUFDekcsQ0FBQztJQUVNLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBa0IsRUFBRSxXQUFXLEdBQUcsR0FBRztRQUMxRCxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxRQUFRLEVBQUU7WUFDVixPQUFPLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUN2RTtRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLE9BQU8sR0FBRyxHQUFHLEdBQUcsT0FBTyxDQUFDO1NBQzNCO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDeEIsT0FBTyxJQUFJLEdBQUcsQ0FBQztTQUNsQjtRQUNELElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM3QixXQUFXLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMxQztRQUVELE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN4QyxPQUFPLE1BQU0sR0FBRyxPQUFPLEdBQUcsV0FBVyxDQUFDO0lBQzFDLENBQUM7SUFFTSxNQUFNLENBQUMsYUFBYSxDQUFDLElBQVk7UUFDcEMsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQztRQUN0QyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsUUFBUSxJQUFJLG1CQUFtQixDQUFDLENBQUM7UUFDMUQsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDYixPQUFPLEVBQUUsQ0FBQztTQUNiO1FBQ0QsT0FBTyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTSxNQUFNLENBQUMsb0JBQW9CO1FBQzlCLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEQsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEQsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2RCxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQy9ELE9BQU87WUFDSCxLQUFLO1lBQ0wsU0FBUztZQUNULElBQUk7WUFDSixRQUFRLEVBQU0sT0FBTztZQUNyQixZQUFZLEVBQUUsV0FBVztTQUM1QixDQUFDO0lBQ04sQ0FBQztJQUVNLE1BQU0sQ0FBQyxvQkFBb0I7UUFDOUIsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDbkQsT0FBTyxNQUFNLENBQUMsS0FBSyxJQUFJLElBQUk7ZUFDakIsTUFBTSxDQUFDLFNBQVMsSUFBSSxJQUFJO2VBQ3hCLE1BQU0sQ0FBQyxJQUFJLElBQUksSUFBSTtlQUNuQixNQUFNLENBQUMsUUFBUSxJQUFJLElBQUk7ZUFDdkIsTUFBTSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUM7SUFDMUMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMb2NhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuZXhwb3J0IGludGVyZmFjZSBPcGVuSURRdWVyeVBhcmFtcyB7XG4gICAgZXJyb3I6IHN0cmluZyB8IG51bGw7XG4gICAgZXJyb3JEZXNjOiBzdHJpbmcgfCBudWxsO1xuICAgIGNvZGU6IHN0cmluZyB8IG51bGw7XG4gICAgaWRfdG9rZW46IHN0cmluZyB8IG51bGw7XG4gICAgYWNjZXNzX3Rva2VuOiBzdHJpbmcgfCBudWxsO1xufVxuXG4vLyBAZHluYW1pY1xuZXhwb3J0IGNsYXNzIFJlcXVlc3RVdGlscyB7XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldCBsb2NhdGlvbkhyZWYoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5ocmVmO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgc2V0IGxvY2F0aW9uSHJlZihocmVmOiBzdHJpbmcpIHtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBocmVmO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGdldFVSTFBhdGgoaHJlZjogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGxpbms6IEhUTUxBbmNob3JFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICBsaW5rLmhyZWYgPSBocmVmO1xuICAgICAgICByZXR1cm4gbGluay5wYXRobmFtZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldE9yaWdpbigpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBwb3J0ID0gd2luZG93LmxvY2F0aW9uLnBvcnQgPyBgOiR7d2luZG93LmxvY2F0aW9uLnBvcnR9YCA6ICcnO1xuICAgICAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLm9yaWdpbiB8fCAoYCR7d2luZG93LmxvY2F0aW9uLnByb3RvY29sfS8vJHt3aW5kb3cubG9jYXRpb24uaG9zdG5hbWV9JHtwb3J0fWApO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0QmFzZVVSTChsb2NhdGlvbjogTG9jYXRpb24sIHJlbGF0aXZlVVJMID0gJy8nKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGJhc2VVUkwgPSAnJztcbiAgICAgICAgaWYgKGxvY2F0aW9uKSB7XG4gICAgICAgICAgICBiYXNlVVJMID0gUmVxdWVzdFV0aWxzLmdldFVSTFBhdGgobG9jYXRpb24ucHJlcGFyZUV4dGVybmFsVXJsKCcvJykpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghYmFzZVVSTC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgIGJhc2VVUkwgPSAnLycgKyBiYXNlVVJMO1xuICAgICAgICB9XG4gICAgICAgIGlmICghYmFzZVVSTC5lbmRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICBiYXNlVVJMICs9ICcvJztcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVsYXRpdmVVUkwuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICByZWxhdGl2ZVVSTCA9IHJlbGF0aXZlVVJMLnN1YnN0cmluZygxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG9yaWdpbiA9IFJlcXVlc3RVdGlscy5nZXRPcmlnaW4oKTtcbiAgICAgICAgcmV0dXJuIG9yaWdpbiArIGJhc2VVUkwgKyByZWxhdGl2ZVVSTDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldFF1ZXJ5UGFyYW0obmFtZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IHVybCA9IFJlcXVlc3RVdGlscy5sb2NhdGlvbkhyZWY7XG4gICAgICAgIG5hbWUgPSBuYW1lLnJlcGxhY2UoL1tcXFtcXF1dL2csICdcXFxcJCYnKTtcbiAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGBbPyMmXSR7bmFtZX0oPShbXiYjXSopfCZ8I3wkKWApO1xuICAgICAgICBjb25zdCByZXN1bHRzID0gcmVnZXguZXhlYyh1cmwpO1xuICAgICAgICBpZiAoIXJlc3VsdHMpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICghcmVzdWx0c1syXSkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQocmVzdWx0c1syXS5yZXBsYWNlKC9cXCsvZywgJyAnKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRPcGVuSURRdWVyeVBhcmFtcygpOiBPcGVuSURRdWVyeVBhcmFtcyB7XG4gICAgICAgIGNvbnN0IGVycm9yID0gUmVxdWVzdFV0aWxzLmdldFF1ZXJ5UGFyYW0oJ2Vycm9yJyk7XG4gICAgICAgIGNvbnN0IGVycm9yRGVzYyA9IFJlcXVlc3RVdGlscy5nZXRRdWVyeVBhcmFtKCdlcnJvcl9kZXNjcmlwdGlvbicpO1xuICAgICAgICBjb25zdCBjb2RlID0gUmVxdWVzdFV0aWxzLmdldFF1ZXJ5UGFyYW0oJ2NvZGUnKTtcbiAgICAgICAgY29uc3QgaWRUb2tlbiA9IFJlcXVlc3RVdGlscy5nZXRRdWVyeVBhcmFtKCdpZF90b2tlbicpO1xuICAgICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IFJlcXVlc3RVdGlscy5nZXRRdWVyeVBhcmFtKCdhY2Nlc3NfdG9rZW4nKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgZXJyb3JEZXNjLFxuICAgICAgICAgICAgY29kZSxcbiAgICAgICAgICAgIGlkX3Rva2VuICAgIDogaWRUb2tlbixcbiAgICAgICAgICAgIGFjY2Vzc190b2tlbjogYWNjZXNzVG9rZW5cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGhhc09wZW5JRFF1ZXJ5UGFyYW1zKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBwYXJhbXMgPSBSZXF1ZXN0VXRpbHMuZ2V0T3BlbklEUXVlcnlQYXJhbXMoKTtcbiAgICAgICAgcmV0dXJuIHBhcmFtcy5lcnJvciAhPSBudWxsXG4gICAgICAgICAgICAgICB8fCBwYXJhbXMuZXJyb3JEZXNjICE9IG51bGxcbiAgICAgICAgICAgICAgIHx8IHBhcmFtcy5jb2RlICE9IG51bGxcbiAgICAgICAgICAgICAgIHx8IHBhcmFtcy5pZF90b2tlbiAhPSBudWxsXG4gICAgICAgICAgICAgICB8fCBwYXJhbXMuYWNjZXNzX3Rva2VuICE9IG51bGw7XG4gICAgfVxufVxuIl19