@ariyana/appauth
Version:
A general purpose OAuth client.
60 lines • 8.49 kB
JavaScript
;
/*
* Copyright 2017 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing permissions and
* limitations under the License.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.AuthorizationServiceConfiguration = void 0;
var xhr_1 = require("./xhr");
/**
* The standard base path for well-known resources on domains.
* See https://tools.ietf.org/html/rfc5785 for more information.
*/
var WELL_KNOWN_PATH = '.well-known';
/**
* The standard resource under the well known path at which an OpenID Connect
* discovery document can be found under an issuer's base URI.
*/
var OPENID_CONFIGURATION = 'openid-configuration';
/**
* Configuration details required to interact with an authorization service.
*
* More information at https://openid.net/specs/openid-connect-discovery-1_0-17.html
*/
var AuthorizationServiceConfiguration = /** @class */ (function () {
function AuthorizationServiceConfiguration(request) {
this.authorizationEndpoint = request.authorization_endpoint;
this.tokenEndpoint = request.token_endpoint;
this.revocationEndpoint = request.revocation_endpoint;
this.userInfoEndpoint = request.userinfo_endpoint;
this.endSessionEndpoint = request.end_session_endpoint;
}
AuthorizationServiceConfiguration.prototype.toJson = function () {
return {
authorization_endpoint: this.authorizationEndpoint,
token_endpoint: this.tokenEndpoint,
revocation_endpoint: this.revocationEndpoint,
end_session_endpoint: this.endSessionEndpoint,
userinfo_endpoint: this.userInfoEndpoint
};
};
AuthorizationServiceConfiguration.fetchFromIssuer = function (openIdIssuerUrl, requestor) {
var fullUrl = openIdIssuerUrl + "/" + WELL_KNOWN_PATH + "/" + OPENID_CONFIGURATION;
var requestorToUse = requestor || new xhr_1.JQueryRequestor();
return requestorToUse
.xhr({ url: fullUrl, dataType: 'json', method: 'GET' })
.then(function (json) { return new AuthorizationServiceConfiguration(json); });
};
return AuthorizationServiceConfiguration;
}());
exports.AuthorizationServiceConfiguration = AuthorizationServiceConfiguration;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbl9zZXJ2aWNlX2NvbmZpZ3VyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYXV0aG9yaXphdGlvbl9zZXJ2aWNlX2NvbmZpZ3VyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7R0FZRzs7O0FBRUgsNkJBQWlEO0FBY2pEOzs7R0FHRztBQUNILElBQU0sZUFBZSxHQUFHLGFBQWEsQ0FBQztBQUV0Qzs7O0dBR0c7QUFDSCxJQUFNLG9CQUFvQixHQUFHLHNCQUFzQixDQUFDO0FBRXBEOzs7O0dBSUc7QUFDSDtJQU9FLDJDQUFZLE9BQThDO1FBQ3hELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxPQUFPLENBQUMsc0JBQXNCLENBQUM7UUFDNUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDO1FBQzVDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUM7UUFDdEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztRQUNsRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsT0FBTyxDQUFDLG9CQUFvQixDQUFDO0lBQ3pELENBQUM7SUFFRCxrREFBTSxHQUFOO1FBQ0UsT0FBTztZQUNMLHNCQUFzQixFQUFFLElBQUksQ0FBQyxxQkFBcUI7WUFDbEQsY0FBYyxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2xDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7WUFDNUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtZQUM3QyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1NBQ3pDLENBQUM7SUFDSixDQUFDO0lBRU0saURBQWUsR0FBdEIsVUFBdUIsZUFBdUIsRUFBRSxTQUFxQjtRQUVuRSxJQUFNLE9BQU8sR0FBTSxlQUFlLFNBQUksZUFBZSxTQUFJLG9CQUFzQixDQUFDO1FBRWhGLElBQU0sY0FBYyxHQUFHLFNBQVMsSUFBSSxJQUFJLHFCQUFlLEVBQUUsQ0FBQztRQUUxRCxPQUFPLGNBQWM7YUFDaEIsR0FBRyxDQUF3QyxFQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDLENBQUM7YUFDM0YsSUFBSSxDQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsSUFBSSxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsRUFBM0MsQ0FBMkMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFDSCx3Q0FBQztBQUFELENBQUMsQUFuQ0QsSUFtQ0M7QUFuQ1ksOEVBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cclxuICpcclxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHRcclxuICogaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuICpcclxuICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbiAqXHJcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlXHJcbiAqIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyXHJcbiAqIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICovXHJcblxyXG5pbXBvcnQge0pRdWVyeVJlcXVlc3RvciwgUmVxdWVzdG9yfSBmcm9tICcuL3hocic7XHJcblxyXG5cclxuLyoqXHJcbiAqIFJlcHJlc2VudHMgQXV0aG9yaXphdGlvblNlcnZpY2VDb25maWd1cmF0aW9uIGFzIGEgSlNPTiBvYmplY3QuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhvcml6YXRpb25TZXJ2aWNlQ29uZmlndXJhdGlvbkpzb24ge1xyXG4gIGF1dGhvcml6YXRpb25fZW5kcG9pbnQ6IHN0cmluZztcclxuICB0b2tlbl9lbmRwb2ludDogc3RyaW5nO1xyXG4gIHJldm9jYXRpb25fZW5kcG9pbnQ6IHN0cmluZztcclxuICBlbmRfc2Vzc2lvbl9lbmRwb2ludD86IHN0cmluZztcclxuICB1c2VyaW5mb19lbmRwb2ludD86IHN0cmluZztcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoZSBzdGFuZGFyZCBiYXNlIHBhdGggZm9yIHdlbGwta25vd24gcmVzb3VyY2VzIG9uIGRvbWFpbnMuXHJcbiAqIFNlZSBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNTc4NSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cclxuICovXHJcbmNvbnN0IFdFTExfS05PV05fUEFUSCA9ICcud2VsbC1rbm93bic7XHJcblxyXG4vKipcclxuICogVGhlIHN0YW5kYXJkIHJlc291cmNlIHVuZGVyIHRoZSB3ZWxsIGtub3duIHBhdGggYXQgd2hpY2ggYW4gT3BlbklEIENvbm5lY3RcclxuICogZGlzY292ZXJ5IGRvY3VtZW50IGNhbiBiZSBmb3VuZCB1bmRlciBhbiBpc3N1ZXIncyBiYXNlIFVSSS5cclxuICovXHJcbmNvbnN0IE9QRU5JRF9DT05GSUdVUkFUSU9OID0gJ29wZW5pZC1jb25maWd1cmF0aW9uJztcclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmF0aW9uIGRldGFpbHMgcmVxdWlyZWQgdG8gaW50ZXJhY3Qgd2l0aCBhbiBhdXRob3JpemF0aW9uIHNlcnZpY2UuXHJcbiAqXHJcbiAqIE1vcmUgaW5mb3JtYXRpb24gYXQgaHR0cHM6Ly9vcGVuaWQubmV0L3NwZWNzL29wZW5pZC1jb25uZWN0LWRpc2NvdmVyeS0xXzAtMTcuaHRtbFxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEF1dGhvcml6YXRpb25TZXJ2aWNlQ29uZmlndXJhdGlvbiB7XHJcbiAgYXV0aG9yaXphdGlvbkVuZHBvaW50OiBzdHJpbmc7XHJcbiAgdG9rZW5FbmRwb2ludDogc3RyaW5nO1xyXG4gIHJldm9jYXRpb25FbmRwb2ludDogc3RyaW5nO1xyXG4gIHVzZXJJbmZvRW5kcG9pbnQ/OiBzdHJpbmc7XHJcbiAgZW5kU2Vzc2lvbkVuZHBvaW50Pzogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihyZXF1ZXN0OiBBdXRob3JpemF0aW9uU2VydmljZUNvbmZpZ3VyYXRpb25Kc29uKSB7XHJcbiAgICB0aGlzLmF1dGhvcml6YXRpb25FbmRwb2ludCA9IHJlcXVlc3QuYXV0aG9yaXphdGlvbl9lbmRwb2ludDtcclxuICAgIHRoaXMudG9rZW5FbmRwb2ludCA9IHJlcXVlc3QudG9rZW5fZW5kcG9pbnQ7XHJcbiAgICB0aGlzLnJldm9jYXRpb25FbmRwb2ludCA9IHJlcXVlc3QucmV2b2NhdGlvbl9lbmRwb2ludDtcclxuICAgIHRoaXMudXNlckluZm9FbmRwb2ludCA9IHJlcXVlc3QudXNlcmluZm9fZW5kcG9pbnQ7XHJcbiAgICB0aGlzLmVuZFNlc3Npb25FbmRwb2ludCA9IHJlcXVlc3QuZW5kX3Nlc3Npb25fZW5kcG9pbnQ7XHJcbiAgfVxyXG5cclxuICB0b0pzb24oKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBhdXRob3JpemF0aW9uX2VuZHBvaW50OiB0aGlzLmF1dGhvcml6YXRpb25FbmRwb2ludCxcclxuICAgICAgdG9rZW5fZW5kcG9pbnQ6IHRoaXMudG9rZW5FbmRwb2ludCxcclxuICAgICAgcmV2b2NhdGlvbl9lbmRwb2ludDogdGhpcy5yZXZvY2F0aW9uRW5kcG9pbnQsXHJcbiAgICAgIGVuZF9zZXNzaW9uX2VuZHBvaW50OiB0aGlzLmVuZFNlc3Npb25FbmRwb2ludCxcclxuICAgICAgdXNlcmluZm9fZW5kcG9pbnQ6IHRoaXMudXNlckluZm9FbmRwb2ludFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBmZXRjaEZyb21Jc3N1ZXIob3BlbklkSXNzdWVyVXJsOiBzdHJpbmcsIHJlcXVlc3Rvcj86IFJlcXVlc3Rvcik6XHJcbiAgICAgIFByb21pc2U8QXV0aG9yaXphdGlvblNlcnZpY2VDb25maWd1cmF0aW9uPiB7XHJcbiAgICBjb25zdCBmdWxsVXJsID0gYCR7b3BlbklkSXNzdWVyVXJsfS8ke1dFTExfS05PV05fUEFUSH0vJHtPUEVOSURfQ09ORklHVVJBVElPTn1gO1xyXG5cclxuICAgIGNvbnN0IHJlcXVlc3RvclRvVXNlID0gcmVxdWVzdG9yIHx8IG5ldyBKUXVlcnlSZXF1ZXN0b3IoKTtcclxuXHJcbiAgICByZXR1cm4gcmVxdWVzdG9yVG9Vc2VcclxuICAgICAgICAueGhyPEF1dGhvcml6YXRpb25TZXJ2aWNlQ29uZmlndXJhdGlvbkpzb24+KHt1cmw6IGZ1bGxVcmwsIGRhdGFUeXBlOiAnanNvbicsIG1ldGhvZDogJ0dFVCd9KVxyXG4gICAgICAgIC50aGVuKGpzb24gPT4gbmV3IEF1dGhvcml6YXRpb25TZXJ2aWNlQ29uZmlndXJhdGlvbihqc29uKSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==