@api-client/core 0.5.20 → 0.5.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/browser.d.ts +7 -0
- package/build/browser.js +10 -0
- package/build/browser.js.map +1 -1
- package/build/index.d.ts +4 -0
- package/build/index.js +7 -0
- package/build/index.js.map +1 -1
- package/build/src/authorization/AuthorizationError.d.ts +23 -0
- package/build/src/authorization/AuthorizationError.js +33 -0
- package/build/src/authorization/AuthorizationError.js.map +1 -0
- package/build/src/authorization/CustomParameters.d.ts +24 -0
- package/build/src/authorization/CustomParameters.js +59 -0
- package/build/src/authorization/CustomParameters.js.map +1 -0
- package/build/src/authorization/OAuth2Authorization.d.ts +332 -0
- package/build/src/authorization/OAuth2Authorization.js +965 -0
- package/build/src/authorization/OAuth2Authorization.js.map +1 -0
- package/build/src/authorization/OidcAuthorization.d.ts +34 -0
- package/build/src/authorization/OidcAuthorization.js +139 -0
- package/build/src/authorization/OidcAuthorization.js.map +1 -0
- package/build/src/authorization/Utils.d.ts +51 -0
- package/build/src/authorization/Utils.js +122 -0
- package/build/src/authorization/Utils.js.map +1 -0
- package/build/src/authorization/lib/IframeAuthorization.d.ts +53 -0
- package/build/src/authorization/lib/IframeAuthorization.js +116 -0
- package/build/src/authorization/lib/IframeAuthorization.js.map +1 -0
- package/build/src/authorization/lib/KnownGrants.d.ts +6 -0
- package/build/src/authorization/lib/KnownGrants.js +7 -0
- package/build/src/authorization/lib/KnownGrants.js.map +1 -0
- package/build/src/authorization/lib/PopupAuthorization.d.ts +41 -0
- package/build/src/authorization/lib/PopupAuthorization.js +73 -0
- package/build/src/authorization/lib/PopupAuthorization.js.map +1 -0
- package/build/src/authorization/lib/Tokens.d.ts +55 -0
- package/build/src/authorization/lib/Tokens.js +117 -0
- package/build/src/authorization/lib/Tokens.js.map +1 -0
- package/build/src/authorization/types.d.ts +174 -0
- package/build/src/authorization/types.js +2 -0
- package/build/src/authorization/types.js.map +1 -0
- package/oauth-popup.html +29 -0
- package/package.json +3 -1
- package/src/authorization/AuthorizationError.ts +25 -0
- package/src/authorization/CustomParameters.ts +61 -0
- package/src/authorization/OAuth2Authorization.ts +1027 -0
- package/src/authorization/OidcAuthorization.ts +143 -0
- package/src/authorization/Utils.ts +126 -0
- package/src/authorization/lib/IframeAuthorization.ts +128 -0
- package/src/authorization/lib/KnownGrants.ts +6 -0
- package/src/authorization/lib/PopupAuthorization.ts +80 -0
- package/src/authorization/lib/Tokens.ts +124 -0
- package/src/authorization/types.ts +176 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OAuth2Authorization.js","sourceRoot":"","sources":["../../../src/authorization/OAuth2Authorization.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { IOidcTokenInfo, IOidcTokenError, ITokenInfo } from '../models/Authorization.js';
|
|
2
|
+
import { OAuth2Authorization, handleTokenInfo } from './OAuth2Authorization.js';
|
|
3
|
+
export declare class OidcAuthorization extends OAuth2Authorization {
|
|
4
|
+
/**
|
|
5
|
+
* @returns The parameters to build popup URL.
|
|
6
|
+
*/
|
|
7
|
+
buildPopupUrlParams(): Promise<URL | null>;
|
|
8
|
+
/**
|
|
9
|
+
* @param params The instance of search params with the response from the auth dialog.
|
|
10
|
+
* @returns true when the params qualify as an authorization popup redirect response.
|
|
11
|
+
*/
|
|
12
|
+
validateTokenResponse(params: URLSearchParams): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Processes the response returned by the popup or the iframe.
|
|
15
|
+
*/
|
|
16
|
+
processTokenResponse(params: URLSearchParams): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Creates a token info object for each requested response type. These are created from the params received from the
|
|
19
|
+
* redirect URI. This means that it might not be complete (for code response type).
|
|
20
|
+
* @param params
|
|
21
|
+
* @param time Timestamp when the tokens were created
|
|
22
|
+
*/
|
|
23
|
+
prepareTokens(params: URLSearchParams, time: number): IOidcTokenInfo[] | null;
|
|
24
|
+
/**
|
|
25
|
+
* Finishes the authorization.
|
|
26
|
+
*/
|
|
27
|
+
finish(tokens: (IOidcTokenInfo | IOidcTokenError)[]): void;
|
|
28
|
+
/**
|
|
29
|
+
* Processes token info object when it's ready.
|
|
30
|
+
*
|
|
31
|
+
* @param info Token info returned from the server.
|
|
32
|
+
*/
|
|
33
|
+
[handleTokenInfo](info: ITokenInfo): void;
|
|
34
|
+
}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { Tokens } from './lib/Tokens.js';
|
|
2
|
+
import { OAuth2Authorization, grantResponseMapping, reportOAuthError, resolveFunction, rejectFunction, handleTokenInfo } from './OAuth2Authorization.js';
|
|
3
|
+
import { nonceGenerator } from './Utils.js';
|
|
4
|
+
export class OidcAuthorization extends OAuth2Authorization {
|
|
5
|
+
/**
|
|
6
|
+
* @returns The parameters to build popup URL.
|
|
7
|
+
*/
|
|
8
|
+
async buildPopupUrlParams() {
|
|
9
|
+
const url = await super.buildPopupUrlParams();
|
|
10
|
+
if (url === null) {
|
|
11
|
+
return url;
|
|
12
|
+
}
|
|
13
|
+
const type = (this.settings.responseType || grantResponseMapping[this.settings.grantType]);
|
|
14
|
+
// ID token nonce
|
|
15
|
+
if (type.includes('id_token')) {
|
|
16
|
+
url.searchParams.set('nonce', nonceGenerator());
|
|
17
|
+
}
|
|
18
|
+
return url;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* @param params The instance of search params with the response from the auth dialog.
|
|
22
|
+
* @returns true when the params qualify as an authorization popup redirect response.
|
|
23
|
+
*/
|
|
24
|
+
validateTokenResponse(params) {
|
|
25
|
+
if (params.has('id_token')) {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
return super.validateTokenResponse(params);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Processes the response returned by the popup or the iframe.
|
|
32
|
+
*/
|
|
33
|
+
async processTokenResponse(params) {
|
|
34
|
+
this.clearObservers();
|
|
35
|
+
const state = params.get('state');
|
|
36
|
+
if (!state) {
|
|
37
|
+
this[reportOAuthError]('Server did not return the state parameter.', 'no_state');
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (state !== this.state) {
|
|
41
|
+
// The authorization class (this) is created per token request so this can only have one state.
|
|
42
|
+
// When the app requests for more tokens at the same time is should create multiple instances of this.
|
|
43
|
+
this[reportOAuthError]('The state value returned by the authorization server is invalid.', 'invalid_state');
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (params.has('error')) {
|
|
47
|
+
const info = this.createTokenResponseError(params);
|
|
48
|
+
// @ts-ignore
|
|
49
|
+
this[reportOAuthError](...info);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
// this is the time when the tokens are received. +- a few ms.
|
|
53
|
+
const time = Date.now();
|
|
54
|
+
const tokens = this.prepareTokens(params, time);
|
|
55
|
+
if (!Array.isArray(tokens) || !tokens.length) {
|
|
56
|
+
this[reportOAuthError]('The authorization response has unknown response type configuration.', 'unknown_state');
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const codeIndex = tokens.findIndex(i => i.responseType === 'code');
|
|
60
|
+
if (codeIndex >= 0) {
|
|
61
|
+
const codeToken = tokens[codeIndex];
|
|
62
|
+
try {
|
|
63
|
+
const info = await this.getCodeInfo(codeToken.code);
|
|
64
|
+
if (info.error) {
|
|
65
|
+
tokens[codeIndex] = {
|
|
66
|
+
responseType: codeToken.responseType,
|
|
67
|
+
state: codeToken.state,
|
|
68
|
+
error: info.error,
|
|
69
|
+
errorDescription: info.errorDescription,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
codeToken.accessToken = info.accessToken;
|
|
74
|
+
codeToken.refreshToken = info.refreshToken;
|
|
75
|
+
codeToken.idToken = info.idToken;
|
|
76
|
+
codeToken.tokenType = info.tokenType;
|
|
77
|
+
codeToken.expiresIn = info.expiresIn;
|
|
78
|
+
codeToken.scope = Tokens.computeTokenInfoScopes(this.settings.scopes, info.scope);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
catch (e) {
|
|
82
|
+
tokens[codeIndex] = {
|
|
83
|
+
responseType: codeToken.responseType,
|
|
84
|
+
state: codeToken.state,
|
|
85
|
+
error: 'unknown_state',
|
|
86
|
+
errorDescription: e.message,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
this.finish(tokens);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Creates a token info object for each requested response type. These are created from the params received from the
|
|
94
|
+
* redirect URI. This means that it might not be complete (for code response type).
|
|
95
|
+
* @param params
|
|
96
|
+
* @param time Timestamp when the tokens were created
|
|
97
|
+
*/
|
|
98
|
+
prepareTokens(params, time) {
|
|
99
|
+
const { grantType, responseType = '', scopes } = this.settings;
|
|
100
|
+
let type = responseType;
|
|
101
|
+
if (!type) {
|
|
102
|
+
type = grantResponseMapping[grantType];
|
|
103
|
+
}
|
|
104
|
+
if (!type) {
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
const types = type.split(' ').map(i => i.trim()).filter(i => !!i);
|
|
108
|
+
const result = [];
|
|
109
|
+
types.forEach(item => {
|
|
110
|
+
const info = Tokens.createTokenInfo(item, params, time, scopes);
|
|
111
|
+
if (info) {
|
|
112
|
+
result.push(info);
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
return result;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Finishes the authorization.
|
|
119
|
+
*/
|
|
120
|
+
finish(tokens) {
|
|
121
|
+
if (this[resolveFunction]) {
|
|
122
|
+
this[resolveFunction](tokens);
|
|
123
|
+
}
|
|
124
|
+
this[rejectFunction] = undefined;
|
|
125
|
+
this[resolveFunction] = undefined;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Processes token info object when it's ready.
|
|
129
|
+
*
|
|
130
|
+
* @param info Token info returned from the server.
|
|
131
|
+
*/
|
|
132
|
+
[handleTokenInfo](info) {
|
|
133
|
+
const { responseType } = this.settings;
|
|
134
|
+
const token = Tokens.fromTokenInfo(info);
|
|
135
|
+
token.responseType = responseType || '';
|
|
136
|
+
this.finish([token]);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=OidcAuthorization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OidcAuthorization.js","sourceRoot":"","sources":["../../../src/authorization/OidcAuthorization.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { IOAuth2Authorization } from "../models/Authorization.js";
|
|
2
|
+
/**
|
|
3
|
+
* Checks if the URL has valid scheme for OAuth flow.
|
|
4
|
+
*
|
|
5
|
+
* Do not use this to validate redirect URIs as they can use any protocol.
|
|
6
|
+
*
|
|
7
|
+
* @param url The url value to test
|
|
8
|
+
* @throws {TypeError} When passed value is not set, empty, or not a string
|
|
9
|
+
* @throws {Error} When passed value is not a valid URL for OAuth 2 flow
|
|
10
|
+
*/
|
|
11
|
+
export declare function checkUrl(url: string): void;
|
|
12
|
+
/**
|
|
13
|
+
* Checks if basic configuration of the OAuth 2 request is valid an can proceed
|
|
14
|
+
* with authentication.
|
|
15
|
+
* @param settings authorization settings
|
|
16
|
+
* @throws {Error} When settings are not valid
|
|
17
|
+
*/
|
|
18
|
+
export declare function sanityCheck(settings: IOAuth2Authorization): void;
|
|
19
|
+
/**
|
|
20
|
+
* Generates a random string of characters.
|
|
21
|
+
*
|
|
22
|
+
* @returns A random string.
|
|
23
|
+
*/
|
|
24
|
+
export declare function randomString(): string;
|
|
25
|
+
/**
|
|
26
|
+
* Replaces `-` or `_` with camel case.
|
|
27
|
+
* @param {string} name The string to process
|
|
28
|
+
* @return {String|undefined} Camel cased string or `undefined` if not transformed.
|
|
29
|
+
*/
|
|
30
|
+
export declare function camel(name: string): string | undefined;
|
|
31
|
+
/**
|
|
32
|
+
* Computes the SHA256 hash ogf the given input.
|
|
33
|
+
* @param value The value to encode.
|
|
34
|
+
*/
|
|
35
|
+
export declare function sha256(value: string): Promise<ArrayBuffer>;
|
|
36
|
+
/**
|
|
37
|
+
* Encoded the array buffer to a base64 string value.
|
|
38
|
+
*/
|
|
39
|
+
export declare function base64Buffer(buffer: ArrayBuffer): string;
|
|
40
|
+
/**
|
|
41
|
+
* Generates code challenge for the PKCE extension to the OAuth2 specification.
|
|
42
|
+
* @param verifier The generated code verifier.
|
|
43
|
+
* @returns The code challenge string
|
|
44
|
+
*/
|
|
45
|
+
export declare function generateCodeChallenge(verifier: string): Promise<string>;
|
|
46
|
+
/**
|
|
47
|
+
* Generates cryptographically significant random string.
|
|
48
|
+
* @param size The size of the generated nonce.
|
|
49
|
+
* @returns A nonce (number used once).
|
|
50
|
+
*/
|
|
51
|
+
export declare function nonceGenerator(size?: number): string;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks if the URL has valid scheme for OAuth flow.
|
|
3
|
+
*
|
|
4
|
+
* Do not use this to validate redirect URIs as they can use any protocol.
|
|
5
|
+
*
|
|
6
|
+
* @param url The url value to test
|
|
7
|
+
* @throws {TypeError} When passed value is not set, empty, or not a string
|
|
8
|
+
* @throws {Error} When passed value is not a valid URL for OAuth 2 flow
|
|
9
|
+
*/
|
|
10
|
+
export function checkUrl(url) {
|
|
11
|
+
if (!url) {
|
|
12
|
+
throw new TypeError("the value is missing");
|
|
13
|
+
}
|
|
14
|
+
if (typeof url !== "string") {
|
|
15
|
+
throw new TypeError("the value is not a string");
|
|
16
|
+
}
|
|
17
|
+
if (!url.startsWith("http://") && !url.startsWith("https://")) {
|
|
18
|
+
throw new Error("the value has invalid scheme");
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Checks if basic configuration of the OAuth 2 request is valid an can proceed
|
|
23
|
+
* with authentication.
|
|
24
|
+
* @param settings authorization settings
|
|
25
|
+
* @throws {Error} When settings are not valid
|
|
26
|
+
*/
|
|
27
|
+
export function sanityCheck(settings) {
|
|
28
|
+
if (["implicit", "authorization_code"].includes(settings.grantType)) {
|
|
29
|
+
try {
|
|
30
|
+
checkUrl(settings.authorizationUri);
|
|
31
|
+
}
|
|
32
|
+
catch (e) {
|
|
33
|
+
throw new Error(`authorizationUri: ${e.message}`);
|
|
34
|
+
}
|
|
35
|
+
if (settings.accessTokenUri) {
|
|
36
|
+
try {
|
|
37
|
+
checkUrl(settings.accessTokenUri);
|
|
38
|
+
}
|
|
39
|
+
catch (e) {
|
|
40
|
+
throw new Error(`accessTokenUri: ${e.message}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
else if (settings.accessTokenUri) {
|
|
45
|
+
try {
|
|
46
|
+
checkUrl(settings.accessTokenUri);
|
|
47
|
+
}
|
|
48
|
+
catch (e) {
|
|
49
|
+
throw new Error(`accessTokenUri: ${e.message}`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Generates a random string of characters.
|
|
55
|
+
*
|
|
56
|
+
* @returns A random string.
|
|
57
|
+
*/
|
|
58
|
+
export function randomString() {
|
|
59
|
+
const array = new Uint32Array(28);
|
|
60
|
+
window.crypto.getRandomValues(array);
|
|
61
|
+
return Array.from(array, (dec) => `0${dec.toString(16)}`.substr(-2)).join("");
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Replaces `-` or `_` with camel case.
|
|
65
|
+
* @param {string} name The string to process
|
|
66
|
+
* @return {String|undefined} Camel cased string or `undefined` if not transformed.
|
|
67
|
+
*/
|
|
68
|
+
export function camel(name) {
|
|
69
|
+
let i = 0;
|
|
70
|
+
let l;
|
|
71
|
+
let changed = false;
|
|
72
|
+
// eslint-disable-next-line no-cond-assign
|
|
73
|
+
while ((l = name[i])) {
|
|
74
|
+
if ((l === "_" || l === "-") && i + 1 < name.length) {
|
|
75
|
+
// eslint-disable-next-line no-param-reassign
|
|
76
|
+
name = name.substr(0, i) + name[i + 1].toUpperCase() + name.substr(i + 2);
|
|
77
|
+
changed = true;
|
|
78
|
+
}
|
|
79
|
+
// eslint-disable-next-line no-plusplus
|
|
80
|
+
i++;
|
|
81
|
+
}
|
|
82
|
+
return changed ? name : undefined;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Computes the SHA256 hash ogf the given input.
|
|
86
|
+
* @param value The value to encode.
|
|
87
|
+
*/
|
|
88
|
+
export async function sha256(value) {
|
|
89
|
+
const encoder = new TextEncoder();
|
|
90
|
+
const data = encoder.encode(value);
|
|
91
|
+
return window.crypto.subtle.digest("SHA-256", data);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Encoded the array buffer to a base64 string value.
|
|
95
|
+
*/
|
|
96
|
+
export function base64Buffer(buffer) {
|
|
97
|
+
const view = new Uint8Array(buffer);
|
|
98
|
+
const str = String.fromCharCode.apply(null, view);
|
|
99
|
+
return btoa(str).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Generates code challenge for the PKCE extension to the OAuth2 specification.
|
|
103
|
+
* @param verifier The generated code verifier.
|
|
104
|
+
* @returns The code challenge string
|
|
105
|
+
*/
|
|
106
|
+
export async function generateCodeChallenge(verifier) {
|
|
107
|
+
const hashed = await sha256(verifier);
|
|
108
|
+
return base64Buffer(hashed);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Generates cryptographically significant random string.
|
|
112
|
+
* @param size The size of the generated nonce.
|
|
113
|
+
* @returns A nonce (number used once).
|
|
114
|
+
*/
|
|
115
|
+
export function nonceGenerator(size = 20) {
|
|
116
|
+
const validChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
117
|
+
let array = new Uint8Array(size);
|
|
118
|
+
window.crypto.getRandomValues(array);
|
|
119
|
+
array = array.map(x => validChars.charCodeAt(x % validChars.length));
|
|
120
|
+
return String.fromCharCode.apply(null, array);
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=Utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../src/authorization/Utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export declare const loadHandler: unique symbol;
|
|
2
|
+
export declare const timeoutValue: unique symbol;
|
|
3
|
+
export declare const checkInterval: unique symbol;
|
|
4
|
+
export declare const limitValue: unique symbol;
|
|
5
|
+
export declare const targetValue: unique symbol;
|
|
6
|
+
/**
|
|
7
|
+
* Adds the support for the iframe authorization.
|
|
8
|
+
*
|
|
9
|
+
* This class creates and loads an iframe for the given URL. Then it runs a timer recursively
|
|
10
|
+
* that increases its interval multiplying its last timeout value by 2.
|
|
11
|
+
* The the timer reaches timeout it dispatches the timeout event.
|
|
12
|
+
*
|
|
13
|
+
* The library takes into the account the redirects.
|
|
14
|
+
*
|
|
15
|
+
* Call the `cancel()` and the `cleanUp()` functions when the authorization data is received.
|
|
16
|
+
*/
|
|
17
|
+
export declare class IframeAuthorization extends EventTarget {
|
|
18
|
+
loadTimeout?: any;
|
|
19
|
+
timedOut: boolean;
|
|
20
|
+
[timeoutValue]: number;
|
|
21
|
+
[limitValue]: number;
|
|
22
|
+
[targetValue]: HTMLElement;
|
|
23
|
+
frame?: HTMLIFrameElement;
|
|
24
|
+
/**
|
|
25
|
+
* @param limit The timeout limit after which the library calls timeout if it wasn't cancelled.
|
|
26
|
+
* @param target A target node where to add the iframe into.
|
|
27
|
+
*/
|
|
28
|
+
constructor(limit?: number, target?: HTMLElement);
|
|
29
|
+
/**
|
|
30
|
+
* A function to be called when the timer is no longer needed.
|
|
31
|
+
*/
|
|
32
|
+
cancel(): void;
|
|
33
|
+
/**
|
|
34
|
+
* Removes any existing frame and removes any remaining listeners.
|
|
35
|
+
*/
|
|
36
|
+
cleanUp(): void;
|
|
37
|
+
/**
|
|
38
|
+
* Creates an invisible frame and loads the given URL
|
|
39
|
+
* @param url THe resource to load.
|
|
40
|
+
*/
|
|
41
|
+
load(url: string): void;
|
|
42
|
+
/**
|
|
43
|
+
* Handler for the `load` event on the frame.
|
|
44
|
+
* @param {Event} e
|
|
45
|
+
*/
|
|
46
|
+
[loadHandler](e: Event): void;
|
|
47
|
+
/**
|
|
48
|
+
* A callback function that runs in the timeout.
|
|
49
|
+
* It calls the timeout if the timeout value reaches the limit or increases the timeout value
|
|
50
|
+
* and runs the counter once again.
|
|
51
|
+
*/
|
|
52
|
+
[checkInterval](): void;
|
|
53
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/* eslint-disable class-methods-use-this */
|
|
2
|
+
export const loadHandler = Symbol('loadHandler');
|
|
3
|
+
export const timeoutValue = Symbol('timeoutValue');
|
|
4
|
+
export const checkInterval = Symbol('checkInterval');
|
|
5
|
+
export const limitValue = Symbol('limitValue');
|
|
6
|
+
export const targetValue = Symbol('targetValue');
|
|
7
|
+
/**
|
|
8
|
+
* Adds the support for the iframe authorization.
|
|
9
|
+
*
|
|
10
|
+
* This class creates and loads an iframe for the given URL. Then it runs a timer recursively
|
|
11
|
+
* that increases its interval multiplying its last timeout value by 2.
|
|
12
|
+
* The the timer reaches timeout it dispatches the timeout event.
|
|
13
|
+
*
|
|
14
|
+
* The library takes into the account the redirects.
|
|
15
|
+
*
|
|
16
|
+
* Call the `cancel()` and the `cleanUp()` functions when the authorization data is received.
|
|
17
|
+
*/
|
|
18
|
+
export class IframeAuthorization extends EventTarget {
|
|
19
|
+
loadTimeout;
|
|
20
|
+
timedOut = false;
|
|
21
|
+
[timeoutValue] = 8;
|
|
22
|
+
[limitValue];
|
|
23
|
+
[targetValue];
|
|
24
|
+
frame;
|
|
25
|
+
/**
|
|
26
|
+
* @param limit The timeout limit after which the library calls timeout if it wasn't cancelled.
|
|
27
|
+
* @param target A target node where to add the iframe into.
|
|
28
|
+
*/
|
|
29
|
+
constructor(limit = 1020, target = document.body) {
|
|
30
|
+
super();
|
|
31
|
+
this[limitValue] = limit;
|
|
32
|
+
this[targetValue] = target;
|
|
33
|
+
this[loadHandler] = this[loadHandler].bind(this);
|
|
34
|
+
this[checkInterval] = this[checkInterval].bind(this);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* A function to be called when the timer is no longer needed.
|
|
38
|
+
*/
|
|
39
|
+
cancel() {
|
|
40
|
+
if (this.loadTimeout) {
|
|
41
|
+
clearTimeout(this.loadTimeout);
|
|
42
|
+
this.loadTimeout = undefined;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Removes any existing frame and removes any remaining listeners.
|
|
47
|
+
*/
|
|
48
|
+
cleanUp() {
|
|
49
|
+
if (!this.frame) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
this.frame.removeEventListener('load', this[loadHandler]);
|
|
53
|
+
if (this.frame.parentElement) {
|
|
54
|
+
this.frame.parentElement.removeChild(this.frame);
|
|
55
|
+
}
|
|
56
|
+
this.frame = undefined;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Creates an invisible frame and loads the given URL
|
|
60
|
+
* @param url THe resource to load.
|
|
61
|
+
*/
|
|
62
|
+
load(url) {
|
|
63
|
+
const iframe = document.createElement('iframe');
|
|
64
|
+
iframe.style.border = '0';
|
|
65
|
+
iframe.style.width = '0';
|
|
66
|
+
iframe.style.height = '0';
|
|
67
|
+
iframe.style.overflow = 'hidden';
|
|
68
|
+
iframe.addEventListener('load', this[loadHandler]);
|
|
69
|
+
iframe.id = 'oauth2-authorization-frame';
|
|
70
|
+
iframe.setAttribute('data-owner', 'oauth2-authorization');
|
|
71
|
+
iframe.setAttribute('aria-hidden', 'true');
|
|
72
|
+
this[targetValue].appendChild(iframe);
|
|
73
|
+
iframe.src = url;
|
|
74
|
+
this.frame = iframe;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Handler for the `load` event on the frame.
|
|
78
|
+
* @param {Event} e
|
|
79
|
+
*/
|
|
80
|
+
[loadHandler](e) {
|
|
81
|
+
this.cancel();
|
|
82
|
+
const iframe = e.target;
|
|
83
|
+
try {
|
|
84
|
+
if (iframe.contentWindow) {
|
|
85
|
+
iframe.contentWindow.addEventListener('unload', () => {
|
|
86
|
+
this.cancel();
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
catch (_) {
|
|
91
|
+
// ...
|
|
92
|
+
}
|
|
93
|
+
this[timeoutValue] = 8;
|
|
94
|
+
this.loadTimeout = setTimeout(this[checkInterval], this[timeoutValue]);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* A callback function that runs in the timeout.
|
|
98
|
+
* It calls the timeout if the timeout value reaches the limit or increases the timeout value
|
|
99
|
+
* and runs the counter once again.
|
|
100
|
+
*/
|
|
101
|
+
[checkInterval]() {
|
|
102
|
+
if (this.timedOut) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
if (this[timeoutValue] >= this[limitValue]) {
|
|
106
|
+
this.cancel();
|
|
107
|
+
this.dispatchEvent(new Event('timeout'));
|
|
108
|
+
this.timedOut = true;
|
|
109
|
+
this.cleanUp();
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
this[timeoutValue] *= 2;
|
|
113
|
+
this.loadTimeout = setTimeout(this[checkInterval], this[timeoutValue]);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=IframeAuthorization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IframeAuthorization.js","sourceRoot":"","sources":["../../../../src/authorization/lib/IframeAuthorization.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const implicit = "implicit";
|
|
2
|
+
export declare const code = "authorization_code";
|
|
3
|
+
export declare const clientCredentials = "client_credentials";
|
|
4
|
+
export declare const password = "password";
|
|
5
|
+
export declare const jwtBearer = "urn:ietf:params:oauth:grant-type:jwt-bearer";
|
|
6
|
+
export declare const deviceCode = "urn:ietf:params:oauth:grant-type:device_code";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export const implicit = 'implicit';
|
|
2
|
+
export const code = 'authorization_code';
|
|
3
|
+
export const clientCredentials = 'client_credentials';
|
|
4
|
+
export const password = 'password';
|
|
5
|
+
export const jwtBearer = 'urn:ietf:params:oauth:grant-type:jwt-bearer';
|
|
6
|
+
export const deviceCode = 'urn:ietf:params:oauth:grant-type:device_code';
|
|
7
|
+
//# sourceMappingURL=KnownGrants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KnownGrants.js","sourceRoot":"","sources":["../../../../src/authorization/lib/KnownGrants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AACnC,MAAM,CAAC,MAAM,IAAI,GAAG,oBAAoB,CAAC;AACzC,MAAM,CAAC,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;AACtD,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AACnC,MAAM,CAAC,MAAM,SAAS,GAAG,6CAA6C,CAAC;AACvE,MAAM,CAAC,MAAM,UAAU,GAAG,8CAA8C,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export declare const observePopupState: unique symbol;
|
|
2
|
+
export declare const popupInterval: unique symbol;
|
|
3
|
+
export declare const popupObserver: unique symbol;
|
|
4
|
+
export declare const intervalValue: unique symbol;
|
|
5
|
+
/**
|
|
6
|
+
* Adds support for the popup window authorization.
|
|
7
|
+
*
|
|
8
|
+
* The set timeout hack is used because I can't see other way of doing this
|
|
9
|
+
* as load/unload events are called only once (even with redirects)
|
|
10
|
+
* and there's no way of knowing what is happening in the popup (so no timeouts).
|
|
11
|
+
* The user may need more time to authorize themselves and then the application.
|
|
12
|
+
*
|
|
13
|
+
* This class dispatches the `close` event when the popup was closed.
|
|
14
|
+
*
|
|
15
|
+
* Call the `cleanUp()` function when the authorization data is received.
|
|
16
|
+
*/
|
|
17
|
+
export declare class PopupAuthorization extends EventTarget {
|
|
18
|
+
[intervalValue]: number;
|
|
19
|
+
popup?: Window;
|
|
20
|
+
[popupInterval]: any;
|
|
21
|
+
/**
|
|
22
|
+
* @param interval The popup state check interval
|
|
23
|
+
*/
|
|
24
|
+
constructor(interval?: number);
|
|
25
|
+
/**
|
|
26
|
+
* Removes any existing frame and removes any remaining listeners.
|
|
27
|
+
*/
|
|
28
|
+
cleanUp(): void;
|
|
29
|
+
/**
|
|
30
|
+
* Opens a popup to request authorization from the user.
|
|
31
|
+
* @param url The URL to open.
|
|
32
|
+
*/
|
|
33
|
+
load(url: string): void;
|
|
34
|
+
/**
|
|
35
|
+
* Initializes an interval to check whether the popup window is still present.
|
|
36
|
+
* The web security model does not allow pages to read the URL for the cross domain
|
|
37
|
+
* connections.
|
|
38
|
+
*/
|
|
39
|
+
[observePopupState](): void;
|
|
40
|
+
[popupObserver](): void;
|
|
41
|
+
}
|