1 | "use strict";
|
2 |
|
3 |
|
4 |
|
5 |
|
6 | Object.defineProperty(exports, "__esModule", { value: true });
|
7 | exports.TokenUtils = void 0;
|
8 | var CryptoUtils_1 = require("./CryptoUtils");
|
9 | var StringUtils_1 = require("./StringUtils");
|
10 | var TimeUtils_1 = require("./TimeUtils");
|
11 |
|
12 |
|
13 |
|
14 | var TokenUtils = (function () {
|
15 | function TokenUtils() {
|
16 | }
|
17 | |
18 |
|
19 |
|
20 |
|
21 |
|
22 | TokenUtils.decodeJwt = function (jwtToken) {
|
23 | if (StringUtils_1.StringUtils.isEmpty(jwtToken)) {
|
24 | return null;
|
25 | }
|
26 | var idTokenPartsRegex = /^([^\.\s]*)\.([^\.\s]+)\.([^\.\s]*)$/;
|
27 | var matches = idTokenPartsRegex.exec(jwtToken);
|
28 | if (!matches || matches.length < 4) {
|
29 |
|
30 | return null;
|
31 | }
|
32 | var crackedToken = {
|
33 | header: matches[1],
|
34 | JWSPayload: matches[2],
|
35 | JWSSig: matches[3]
|
36 | };
|
37 | return crackedToken;
|
38 | };
|
39 | |
40 |
|
41 |
|
42 |
|
43 | TokenUtils.validateExpirationIsWithinOffset = function (expiration, tokenRenewalOffsetSeconds) {
|
44 | var offset = tokenRenewalOffsetSeconds || 300;
|
45 | return expiration && (expiration > TimeUtils_1.TimeUtils.now() + offset);
|
46 | };
|
47 | |
48 |
|
49 |
|
50 |
|
51 |
|
52 | TokenUtils.extractIdToken = function (encodedIdToken) {
|
53 |
|
54 | var decodedToken = this.decodeJwt(encodedIdToken);
|
55 | if (!decodedToken) {
|
56 | return null;
|
57 | }
|
58 | try {
|
59 | var base64IdToken = decodedToken["JWSPayload"];
|
60 | var base64Decoded = CryptoUtils_1.CryptoUtils.base64Decode(base64IdToken);
|
61 | if (!base64Decoded) {
|
62 |
|
63 | return null;
|
64 | }
|
65 |
|
66 | return JSON.parse(base64Decoded);
|
67 | }
|
68 | catch (err) {
|
69 |
|
70 | }
|
71 | return null;
|
72 | };
|
73 | return TokenUtils;
|
74 | }());
|
75 | exports.TokenUtils = TokenUtils;
|
76 |
|
\ | No newline at end of file |