piral-oauth2 0.13.6 → 0.14.0-alpha.3152
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/esm/create.js +2 -2
- package/esm/create.js.map +1 -1
- package/esm/setup.js +38 -40
- package/esm/setup.js.map +1 -1
- package/esm/utils.js +10 -12
- package/esm/utils.js.map +1 -1
- package/lib/create.js +2 -2
- package/lib/create.js.map +1 -1
- package/lib/index.js +5 -5
- package/lib/index.js.map +1 -1
- package/lib/setup.js +40 -42
- package/lib/setup.js.map +1 -1
- package/lib/utils.js +10 -12
- package/lib/utils.js.map +1 -1
- package/package.json +4 -4
package/esm/create.js
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
* Creates new Pilet API extensions for the integration of OAuth 2.0.
|
|
3
3
|
*/
|
|
4
4
|
export function createOAuth2Api(client) {
|
|
5
|
-
return
|
|
5
|
+
return (context) => {
|
|
6
6
|
context.on('before-fetch', client.extendHeaders);
|
|
7
7
|
return {
|
|
8
|
-
getAccessToken
|
|
8
|
+
getAccessToken() {
|
|
9
9
|
return client.token();
|
|
10
10
|
},
|
|
11
11
|
};
|
package/esm/create.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAoB;IAClD,OAAO,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAoB;IAClD,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,OAAO,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;QAEjD,OAAO;YACL,cAAc;gBACZ,OAAO,MAAM,CAAC,KAAK,EAAE,CAAC;YACxB,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
package/esm/setup.js
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import * as ClientOAuth2 from 'client-oauth2';
|
|
2
2
|
import { createOAuth2MemoryPersistence } from './utils';
|
|
3
|
-
|
|
3
|
+
const callbackName = 'oauth2Cb';
|
|
4
4
|
/**
|
|
5
5
|
* Sets up a new client wrapping the OAuth 2.0 API.
|
|
6
6
|
* @param config The configuration for the client.
|
|
7
7
|
*/
|
|
8
8
|
export function setupOAuth2Client(config) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
clientId
|
|
12
|
-
clientSecret
|
|
13
|
-
redirectUri
|
|
14
|
-
authorizationUri
|
|
15
|
-
accessTokenUri
|
|
16
|
-
scopes
|
|
9
|
+
const { clientId, clientSecret, authorizationUri, accessTokenUri, redirectUri = `${location.origin}/auth`, scopes = [], flow, restrict = false, returnPath = '/', persist = createOAuth2MemoryPersistence(), } = config;
|
|
10
|
+
const client = new ClientOAuth2({
|
|
11
|
+
clientId,
|
|
12
|
+
clientSecret,
|
|
13
|
+
redirectUri,
|
|
14
|
+
authorizationUri,
|
|
15
|
+
accessTokenUri,
|
|
16
|
+
scopes,
|
|
17
17
|
});
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
let currentToken;
|
|
19
|
+
let retrieveToken;
|
|
20
|
+
let getLoginUri;
|
|
21
|
+
const setCurrentToken = (token) => {
|
|
22
22
|
persist.save({
|
|
23
23
|
accessToken: token.accessToken,
|
|
24
24
|
data: token.data,
|
|
@@ -26,73 +26,71 @@ export function setupOAuth2Client(config) {
|
|
|
26
26
|
});
|
|
27
27
|
currentToken = token;
|
|
28
28
|
};
|
|
29
|
-
|
|
30
|
-
return init.then(
|
|
29
|
+
const retrieve = (init, refresh) => {
|
|
30
|
+
return init.then(() => {
|
|
31
31
|
if (!currentToken) {
|
|
32
32
|
return Promise.reject('Not logged in. Please call `login()` to retrieve a token.');
|
|
33
33
|
}
|
|
34
34
|
if (!currentToken.expired()) {
|
|
35
35
|
return currentToken.accessToken;
|
|
36
36
|
}
|
|
37
|
-
return refresh().then(
|
|
37
|
+
return refresh().then((refreshedToken) => {
|
|
38
38
|
setCurrentToken(refreshedToken);
|
|
39
39
|
return currentToken.accessToken;
|
|
40
40
|
});
|
|
41
41
|
});
|
|
42
42
|
};
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
const initialize = (load) => {
|
|
44
|
+
const info = persist.load();
|
|
45
45
|
if (info) {
|
|
46
46
|
currentToken = client.createToken(info.accessToken, info.refreshToken, info.data);
|
|
47
47
|
return Promise.resolve();
|
|
48
48
|
}
|
|
49
49
|
else {
|
|
50
|
-
return load().then(
|
|
51
|
-
|
|
50
|
+
return load().then((token) => {
|
|
51
|
+
const opener = window.opener;
|
|
52
52
|
setCurrentToken(token);
|
|
53
53
|
if (opener && typeof opener[callbackName] === 'function') {
|
|
54
54
|
opener[callbackName](token);
|
|
55
55
|
window.close();
|
|
56
56
|
}
|
|
57
|
-
},
|
|
57
|
+
}, () => { });
|
|
58
58
|
}
|
|
59
59
|
};
|
|
60
60
|
if (flow === 'code') {
|
|
61
|
-
|
|
62
|
-
|
|
61
|
+
const init = initialize(() => {
|
|
62
|
+
const url = location.href;
|
|
63
63
|
history.replaceState(undefined, undefined, returnPath);
|
|
64
64
|
return client.code.getToken(url);
|
|
65
65
|
});
|
|
66
|
-
retrieveToken =
|
|
67
|
-
return retrieve(
|
|
66
|
+
retrieveToken = () => {
|
|
67
|
+
return retrieve(init, () => currentToken.refresh());
|
|
68
68
|
};
|
|
69
|
-
getLoginUri =
|
|
69
|
+
getLoginUri = () => client.code.getUri();
|
|
70
70
|
}
|
|
71
71
|
else {
|
|
72
|
-
|
|
73
|
-
retrieveToken =
|
|
74
|
-
return retrieve(
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
});
|
|
79
|
-
});
|
|
72
|
+
const init = initialize(() => client.token.getToken(location.href));
|
|
73
|
+
retrieveToken = () => {
|
|
74
|
+
return retrieve(init, () => new Promise((resolve) => {
|
|
75
|
+
window[callbackName] = resolve;
|
|
76
|
+
window.open(client.token.getUri());
|
|
77
|
+
}));
|
|
80
78
|
};
|
|
81
|
-
getLoginUri =
|
|
79
|
+
getLoginUri = () => client.token.getUri();
|
|
82
80
|
}
|
|
83
81
|
return {
|
|
84
|
-
login
|
|
82
|
+
login() {
|
|
85
83
|
window.location.href = getLoginUri();
|
|
86
84
|
},
|
|
87
|
-
logout
|
|
85
|
+
logout() {
|
|
88
86
|
currentToken = undefined;
|
|
89
87
|
},
|
|
90
|
-
extendHeaders
|
|
88
|
+
extendHeaders(req) {
|
|
91
89
|
if (!restrict) {
|
|
92
|
-
req.setHeaders(retrieveToken().then(
|
|
90
|
+
req.setHeaders(retrieveToken().then((token) => token && { Authorization: `Bearer ${token}` }, () => undefined));
|
|
93
91
|
}
|
|
94
92
|
},
|
|
95
|
-
account
|
|
93
|
+
account() {
|
|
96
94
|
return !!currentToken;
|
|
97
95
|
},
|
|
98
96
|
token: retrieveToken,
|
package/esm/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,6BAA6B,EAAE,MAAM,SAAS,CAAC;AAoFxD,
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|
package/esm/utils.js
CHANGED
|
@@ -3,20 +3,19 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export function createOAuth2MemoryPersistence() {
|
|
5
5
|
return {
|
|
6
|
-
load
|
|
6
|
+
load() {
|
|
7
7
|
return undefined;
|
|
8
8
|
},
|
|
9
|
-
save
|
|
9
|
+
save() { },
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
13
|
* Creates an OAuth 2 persistence layer using sessionStorage.
|
|
14
14
|
*/
|
|
15
|
-
export function createOAuth2SessionPersistence(sessionKey) {
|
|
16
|
-
if (sessionKey === void 0) { sessionKey = '$piral_oauth2_info'; }
|
|
15
|
+
export function createOAuth2SessionPersistence(sessionKey = '$piral_oauth2_info') {
|
|
17
16
|
return {
|
|
18
|
-
load
|
|
19
|
-
|
|
17
|
+
load() {
|
|
18
|
+
const content = sessionStorage.getItem(sessionKey);
|
|
20
19
|
if (typeof content === 'string') {
|
|
21
20
|
try {
|
|
22
21
|
return JSON.parse(content);
|
|
@@ -27,7 +26,7 @@ export function createOAuth2SessionPersistence(sessionKey) {
|
|
|
27
26
|
}
|
|
28
27
|
return undefined;
|
|
29
28
|
},
|
|
30
|
-
save
|
|
29
|
+
save(info) {
|
|
31
30
|
sessionStorage.setItem(sessionKey, JSON.stringify(info));
|
|
32
31
|
},
|
|
33
32
|
};
|
|
@@ -35,11 +34,10 @@ export function createOAuth2SessionPersistence(sessionKey) {
|
|
|
35
34
|
/**
|
|
36
35
|
* Creates an OAuth 2 persistence layer using localStorage.
|
|
37
36
|
*/
|
|
38
|
-
export function createOAuth2BrowserPersistence(localKey) {
|
|
39
|
-
if (localKey === void 0) { localKey = '$piral_oauth2_info'; }
|
|
37
|
+
export function createOAuth2BrowserPersistence(localKey = '$piral_oauth2_info') {
|
|
40
38
|
return {
|
|
41
|
-
load
|
|
42
|
-
|
|
39
|
+
load() {
|
|
40
|
+
const content = localStorage.getItem(localKey);
|
|
43
41
|
if (typeof content === 'string') {
|
|
44
42
|
try {
|
|
45
43
|
return JSON.parse(content);
|
|
@@ -50,7 +48,7 @@ export function createOAuth2BrowserPersistence(localKey) {
|
|
|
50
48
|
}
|
|
51
49
|
return undefined;
|
|
52
50
|
},
|
|
53
|
-
save
|
|
51
|
+
save(info) {
|
|
54
52
|
localStorage.setItem(localKey, JSON.stringify(info));
|
|
55
53
|
},
|
|
56
54
|
};
|
package/esm/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,6BAA6B;IAC3C,OAAO;QACL,IAAI;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,6BAA6B;IAC3C,OAAO;QACL,IAAI;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,KAAI,CAAC;KACV,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,8BAA8B,CAAC,UAAU,GAAG,oBAAoB;IAC9E,OAAO;QACL,IAAI;YACF,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAEnD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBAC/B,IAAI;oBACF,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;iBAC5B;gBAAC,WAAM;oBACN,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;iBAClF;aACF;YAED,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,IAAI;YACP,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,8BAA8B,CAAC,QAAQ,GAAG,oBAAoB;IAC5E,OAAO;QACL,IAAI;YACF,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAE/C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBAC/B,IAAI;oBACF,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;iBAC5B;gBAAC,WAAM;oBACN,OAAO,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;iBAChF;aACF;YAED,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,IAAI;YACP,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACvD,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/lib/create.js
CHANGED
|
@@ -5,10 +5,10 @@ exports.createOAuth2Api = void 0;
|
|
|
5
5
|
* Creates new Pilet API extensions for the integration of OAuth 2.0.
|
|
6
6
|
*/
|
|
7
7
|
function createOAuth2Api(client) {
|
|
8
|
-
return
|
|
8
|
+
return (context) => {
|
|
9
9
|
context.on('before-fetch', client.extendHeaders);
|
|
10
10
|
return {
|
|
11
|
-
getAccessToken
|
|
11
|
+
getAccessToken() {
|
|
12
12
|
return client.token();
|
|
13
13
|
},
|
|
14
14
|
};
|
package/lib/create.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":";;;AAIA;;GAEG;AACH,SAAgB,eAAe,CAAC,MAAoB;IAClD,OAAO,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":";;;AAIA;;GAEG;AACH,SAAgB,eAAe,CAAC,MAAoB;IAClD,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,OAAO,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;QAEjD,OAAO;YACL,cAAc;gBACZ,OAAO,MAAM,CAAC,KAAK,EAAE,CAAC;YACxB,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAVD,0CAUC"}
|
package/lib/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
tslib_1.__exportStar(require("./create"), exports);
|
|
5
|
-
tslib_1.__exportStar(require("./setup"), exports);
|
|
6
|
-
tslib_1.__exportStar(require("./types"), exports);
|
|
7
|
-
tslib_1.__exportStar(require("./utils"), exports);
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
(0, tslib_1.__exportStar)(require("./create"), exports);
|
|
5
|
+
(0, tslib_1.__exportStar)(require("./setup"), exports);
|
|
6
|
+
(0, tslib_1.__exportStar)(require("./types"), exports);
|
|
7
|
+
(0, tslib_1.__exportStar)(require("./utils"), exports);
|
|
8
8
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,wDAAyB;AACzB,uDAAwB;AACxB,uDAAwB;AACxB,uDAAwB"}
|
package/lib/setup.js
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.setupOAuth2Client = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
const ClientOAuth2 = require("client-oauth2");
|
|
5
|
+
const utils_1 = require("./utils");
|
|
6
|
+
const callbackName = 'oauth2Cb';
|
|
7
7
|
/**
|
|
8
8
|
* Sets up a new client wrapping the OAuth 2.0 API.
|
|
9
9
|
* @param config The configuration for the client.
|
|
10
10
|
*/
|
|
11
11
|
function setupOAuth2Client(config) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
clientId
|
|
15
|
-
clientSecret
|
|
16
|
-
redirectUri
|
|
17
|
-
authorizationUri
|
|
18
|
-
accessTokenUri
|
|
19
|
-
scopes
|
|
12
|
+
const { clientId, clientSecret, authorizationUri, accessTokenUri, redirectUri = `${location.origin}/auth`, scopes = [], flow, restrict = false, returnPath = '/', persist = (0, utils_1.createOAuth2MemoryPersistence)(), } = config;
|
|
13
|
+
const client = new ClientOAuth2({
|
|
14
|
+
clientId,
|
|
15
|
+
clientSecret,
|
|
16
|
+
redirectUri,
|
|
17
|
+
authorizationUri,
|
|
18
|
+
accessTokenUri,
|
|
19
|
+
scopes,
|
|
20
20
|
});
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
let currentToken;
|
|
22
|
+
let retrieveToken;
|
|
23
|
+
let getLoginUri;
|
|
24
|
+
const setCurrentToken = (token) => {
|
|
25
25
|
persist.save({
|
|
26
26
|
accessToken: token.accessToken,
|
|
27
27
|
data: token.data,
|
|
@@ -29,73 +29,71 @@ function setupOAuth2Client(config) {
|
|
|
29
29
|
});
|
|
30
30
|
currentToken = token;
|
|
31
31
|
};
|
|
32
|
-
|
|
33
|
-
return init.then(
|
|
32
|
+
const retrieve = (init, refresh) => {
|
|
33
|
+
return init.then(() => {
|
|
34
34
|
if (!currentToken) {
|
|
35
35
|
return Promise.reject('Not logged in. Please call `login()` to retrieve a token.');
|
|
36
36
|
}
|
|
37
37
|
if (!currentToken.expired()) {
|
|
38
38
|
return currentToken.accessToken;
|
|
39
39
|
}
|
|
40
|
-
return refresh().then(
|
|
40
|
+
return refresh().then((refreshedToken) => {
|
|
41
41
|
setCurrentToken(refreshedToken);
|
|
42
42
|
return currentToken.accessToken;
|
|
43
43
|
});
|
|
44
44
|
});
|
|
45
45
|
};
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
const initialize = (load) => {
|
|
47
|
+
const info = persist.load();
|
|
48
48
|
if (info) {
|
|
49
49
|
currentToken = client.createToken(info.accessToken, info.refreshToken, info.data);
|
|
50
50
|
return Promise.resolve();
|
|
51
51
|
}
|
|
52
52
|
else {
|
|
53
|
-
return load().then(
|
|
54
|
-
|
|
53
|
+
return load().then((token) => {
|
|
54
|
+
const opener = window.opener;
|
|
55
55
|
setCurrentToken(token);
|
|
56
56
|
if (opener && typeof opener[callbackName] === 'function') {
|
|
57
57
|
opener[callbackName](token);
|
|
58
58
|
window.close();
|
|
59
59
|
}
|
|
60
|
-
},
|
|
60
|
+
}, () => { });
|
|
61
61
|
}
|
|
62
62
|
};
|
|
63
63
|
if (flow === 'code') {
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
const init = initialize(() => {
|
|
65
|
+
const url = location.href;
|
|
66
66
|
history.replaceState(undefined, undefined, returnPath);
|
|
67
67
|
return client.code.getToken(url);
|
|
68
68
|
});
|
|
69
|
-
retrieveToken =
|
|
70
|
-
return retrieve(
|
|
69
|
+
retrieveToken = () => {
|
|
70
|
+
return retrieve(init, () => currentToken.refresh());
|
|
71
71
|
};
|
|
72
|
-
getLoginUri =
|
|
72
|
+
getLoginUri = () => client.code.getUri();
|
|
73
73
|
}
|
|
74
74
|
else {
|
|
75
|
-
|
|
76
|
-
retrieveToken =
|
|
77
|
-
return retrieve(
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
});
|
|
82
|
-
});
|
|
75
|
+
const init = initialize(() => client.token.getToken(location.href));
|
|
76
|
+
retrieveToken = () => {
|
|
77
|
+
return retrieve(init, () => new Promise((resolve) => {
|
|
78
|
+
window[callbackName] = resolve;
|
|
79
|
+
window.open(client.token.getUri());
|
|
80
|
+
}));
|
|
83
81
|
};
|
|
84
|
-
getLoginUri =
|
|
82
|
+
getLoginUri = () => client.token.getUri();
|
|
85
83
|
}
|
|
86
84
|
return {
|
|
87
|
-
login
|
|
85
|
+
login() {
|
|
88
86
|
window.location.href = getLoginUri();
|
|
89
87
|
},
|
|
90
|
-
logout
|
|
88
|
+
logout() {
|
|
91
89
|
currentToken = undefined;
|
|
92
90
|
},
|
|
93
|
-
extendHeaders
|
|
91
|
+
extendHeaders(req) {
|
|
94
92
|
if (!restrict) {
|
|
95
|
-
req.setHeaders(retrieveToken().then(
|
|
93
|
+
req.setHeaders(retrieveToken().then((token) => token && { Authorization: `Bearer ${token}` }, () => undefined));
|
|
96
94
|
}
|
|
97
95
|
},
|
|
98
|
-
account
|
|
96
|
+
account() {
|
|
99
97
|
return !!currentToken;
|
|
100
98
|
},
|
|
101
99
|
token: retrieveToken,
|
package/lib/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|
package/lib/utils.js
CHANGED
|
@@ -6,21 +6,20 @@ exports.createOAuth2BrowserPersistence = exports.createOAuth2SessionPersistence
|
|
|
6
6
|
*/
|
|
7
7
|
function createOAuth2MemoryPersistence() {
|
|
8
8
|
return {
|
|
9
|
-
load
|
|
9
|
+
load() {
|
|
10
10
|
return undefined;
|
|
11
11
|
},
|
|
12
|
-
save
|
|
12
|
+
save() { },
|
|
13
13
|
};
|
|
14
14
|
}
|
|
15
15
|
exports.createOAuth2MemoryPersistence = createOAuth2MemoryPersistence;
|
|
16
16
|
/**
|
|
17
17
|
* Creates an OAuth 2 persistence layer using sessionStorage.
|
|
18
18
|
*/
|
|
19
|
-
function createOAuth2SessionPersistence(sessionKey) {
|
|
20
|
-
if (sessionKey === void 0) { sessionKey = '$piral_oauth2_info'; }
|
|
19
|
+
function createOAuth2SessionPersistence(sessionKey = '$piral_oauth2_info') {
|
|
21
20
|
return {
|
|
22
|
-
load
|
|
23
|
-
|
|
21
|
+
load() {
|
|
22
|
+
const content = sessionStorage.getItem(sessionKey);
|
|
24
23
|
if (typeof content === 'string') {
|
|
25
24
|
try {
|
|
26
25
|
return JSON.parse(content);
|
|
@@ -31,7 +30,7 @@ function createOAuth2SessionPersistence(sessionKey) {
|
|
|
31
30
|
}
|
|
32
31
|
return undefined;
|
|
33
32
|
},
|
|
34
|
-
save
|
|
33
|
+
save(info) {
|
|
35
34
|
sessionStorage.setItem(sessionKey, JSON.stringify(info));
|
|
36
35
|
},
|
|
37
36
|
};
|
|
@@ -40,11 +39,10 @@ exports.createOAuth2SessionPersistence = createOAuth2SessionPersistence;
|
|
|
40
39
|
/**
|
|
41
40
|
* Creates an OAuth 2 persistence layer using localStorage.
|
|
42
41
|
*/
|
|
43
|
-
function createOAuth2BrowserPersistence(localKey) {
|
|
44
|
-
if (localKey === void 0) { localKey = '$piral_oauth2_info'; }
|
|
42
|
+
function createOAuth2BrowserPersistence(localKey = '$piral_oauth2_info') {
|
|
45
43
|
return {
|
|
46
|
-
load
|
|
47
|
-
|
|
44
|
+
load() {
|
|
45
|
+
const content = localStorage.getItem(localKey);
|
|
48
46
|
if (typeof content === 'string') {
|
|
49
47
|
try {
|
|
50
48
|
return JSON.parse(content);
|
|
@@ -55,7 +53,7 @@ function createOAuth2BrowserPersistence(localKey) {
|
|
|
55
53
|
}
|
|
56
54
|
return undefined;
|
|
57
55
|
},
|
|
58
|
-
save
|
|
56
|
+
save(info) {
|
|
59
57
|
localStorage.setItem(localKey, JSON.stringify(info));
|
|
60
58
|
},
|
|
61
59
|
};
|
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,SAAgB,6BAA6B;IAC3C,OAAO;QACL,IAAI;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,SAAgB,6BAA6B;IAC3C,OAAO;QACL,IAAI;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,KAAI,CAAC;KACV,CAAC;AACJ,CAAC;AAPD,sEAOC;AAED;;GAEG;AACH,SAAgB,8BAA8B,CAAC,UAAU,GAAG,oBAAoB;IAC9E,OAAO;QACL,IAAI;YACF,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAEnD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBAC/B,IAAI;oBACF,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;iBAC5B;gBAAC,WAAM;oBACN,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;iBAClF;aACF;YAED,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,IAAI;YACP,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,CAAC;KACF,CAAC;AACJ,CAAC;AAnBD,wEAmBC;AAED;;GAEG;AACH,SAAgB,8BAA8B,CAAC,QAAQ,GAAG,oBAAoB;IAC5E,OAAO;QACL,IAAI;YACF,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAE/C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBAC/B,IAAI;oBACF,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;iBAC5B;gBAAC,WAAM;oBACN,OAAO,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;iBAChF;aACF;YAED,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,IAAI;YACP,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACvD,CAAC;KACF,CAAC;AACJ,CAAC;AAnBD,wEAmBC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "piral-oauth2",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.0-alpha.3152",
|
|
4
4
|
"description": "Plugin to integrate OAuth 2.0 authentication in Piral.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"piral",
|
|
@@ -46,10 +46,10 @@
|
|
|
46
46
|
"client-oauth2": "^4.2.5"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"piral-core": "^0.
|
|
49
|
+
"piral-core": "^0.14.0-alpha.3152"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
|
-
"piral-core": "0.
|
|
52
|
+
"piral-core": "0.14.x"
|
|
53
53
|
},
|
|
54
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "4ad88a8b8bcdee17f22e7e1e2e8feb41df6210e5"
|
|
55
55
|
}
|