@axa-fr/react-oidc 6.8.1 → 6.8.2

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.
@@ -11,5 +11,14 @@ export declare const setTokens: (tokens: any, oldTokens?: any) => Tokens;
11
11
  export declare const parseOriginalTokens: (tokens: any, oldTokens: any) => Tokens;
12
12
  export declare const computeTimeLeft: (refreshTimeBeforeTokensExpirationInSecond: any, expiresAt: any) => number;
13
13
  export declare const isTokensValid: (tokens: any) => boolean;
14
+ export declare type ValidToken = {
15
+ isTokensValid: Boolean;
16
+ tokens: Tokens;
17
+ numberWaited: Number;
18
+ };
19
+ export interface OidcToken {
20
+ tokens?: Tokens;
21
+ }
22
+ export declare const getValidTokenAsync: (oidc: OidcToken, waitMs?: number, numberWait?: number) => Promise<ValidToken>;
14
23
  export declare const isTokensOidcValid: (tokens: any, nonce: any, oidcServerConfiguration: any) => boolean;
15
24
  //# sourceMappingURL=parseTokens.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parseTokens.d.ts","sourceRoot":"","sources":["../../src/oidc/vanilla/parseTokens.ts"],"names":[],"mappings":"AA0BA,oBAAY,MAAM,GAAG;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAC,GAAG,CAAC;IACnB,OAAO,EAAC,MAAM,CAAC;IACf,kBAAkB,EAAC,GAAG,CAAC;IACvB,WAAW,EAAC,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAA;CACnB,CAAC;AAEF,eAAO,MAAM,SAAS,oCAA4B,MAgCjD,CAAA;AAID,eAAO,MAAM,mBAAmB,yCAmC/B,CAAA;AAED,eAAO,MAAM,eAAe,4EAG3B,CAAA;AAED,eAAO,MAAM,aAAa,0BAKzB,CAAA;AAID,eAAO,MAAM,iBAAiB,oEA2B7B,CAAA"}
1
+ {"version":3,"file":"parseTokens.d.ts","sourceRoot":"","sources":["../../src/oidc/vanilla/parseTokens.ts"],"names":[],"mappings":"AA4BA,oBAAY,MAAM,GAAG;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAC,GAAG,CAAC;IACnB,OAAO,EAAC,MAAM,CAAC;IACf,kBAAkB,EAAC,GAAG,CAAC;IACvB,WAAW,EAAC,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAA;CACnB,CAAC;AAEF,eAAO,MAAM,SAAS,oCAA4B,MAgCjD,CAAA;AAID,eAAO,MAAM,mBAAmB,yCAmC/B,CAAA;AAED,eAAO,MAAM,eAAe,4EAG3B,CAAA;AAED,eAAO,MAAM,aAAa,0BAKzB,CAAA;AAGD,oBAAY,UAAU,GAAG;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,MAAM,WAAW,SAAS;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,kBAAkB,SAAgB,SAAS,2CAAkC,QAAQ,UAAU,CAY3G,CAAA;AAID,eAAO,MAAM,iBAAiB,oEA2B7B,CAAA"}
@@ -1,6 +1,16 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isTokensOidcValid = exports.isTokensValid = exports.computeTimeLeft = exports.parseOriginalTokens = exports.setTokens = void 0;
12
+ exports.isTokensOidcValid = exports.getValidTokenAsync = exports.isTokensValid = exports.computeTimeLeft = exports.parseOriginalTokens = exports.setTokens = void 0;
13
+ const initWorker_1 = require("./initWorker");
4
14
  const b64DecodeUnicode = (str) => decodeURIComponent(Array.prototype.map.call(atob(str), (c) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)).join(''));
5
15
  const parseJwt = (token) => JSON.parse(b64DecodeUnicode(token.split('.')[1].replace('-', '+').replace('_', '/')));
6
16
  const extractTokenPayload = (token) => {
@@ -94,6 +104,20 @@ const isTokensValid = (tokens) => {
94
104
  return (0, exports.computeTimeLeft)(0, tokens.expiresAt) > 0;
95
105
  };
96
106
  exports.isTokensValid = isTokensValid;
107
+ const getValidTokenAsync = (oidc, waitMs = 200, numberWait = 50) => __awaiter(void 0, void 0, void 0, function* () {
108
+ let numberWaitTemp = numberWait;
109
+ while (!(0, exports.isTokensValid)(oidc.tokens) && numberWaitTemp > 0) {
110
+ yield (0, initWorker_1.sleepAsync)(200);
111
+ numberWaitTemp = numberWaitTemp - 1;
112
+ }
113
+ const isValid = (0, exports.isTokensValid)(oidc.tokens);
114
+ return {
115
+ isTokensValid: isValid,
116
+ tokens: oidc.tokens,
117
+ numberWaited: numberWaitTemp - numberWait
118
+ };
119
+ });
120
+ exports.getValidTokenAsync = getValidTokenAsync;
97
121
  // https://openid.net/specs/openid-connect-core-1_0.html#IDTokenValidation (excluding rules #1, #4, #5, #7, #8, #12, and #13 which did not apply).
98
122
  // https://github.com/openid/AppAuth-JS/issues/65
99
123
  const isTokensOidcValid = (tokens, nonce, oidcServerConfiguration) => {
@@ -1 +1 @@
1
- {"version":3,"file":"parseTokens.js","sourceRoot":"","sources":["../../src/oidc/vanilla/parseTokens.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parseTokens.js","sourceRoot":"","sources":["../../src/oidc/vanilla/parseTokens.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,6 @@
1
1
  import { LoginCallback, Oidc, OidcConfiguration, StringMap } from "./oidc";
2
+ import { ValidToken } from "./parseTokens";
2
3
  import { Tokens } from "./parseTokens";
3
- declare type ValidToken = {
4
- isTokensValid: Boolean;
5
- tokens: Tokens;
6
- numberWaited: Number;
7
- };
8
4
  export declare class VanillaOidc {
9
5
  private _oidc;
10
6
  constructor(oidc: Oidc);
@@ -52,5 +48,4 @@ export declare class VanillaOidc {
52
48
  getValidTokenAsync(waitMs?: number, numberWait?: number): Promise<ValidToken>;
53
49
  userInfoAsync(): Promise<any>;
54
50
  }
55
- export {};
56
51
  //# sourceMappingURL=vanillaOidc.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vanillaOidc.d.ts","sourceRoot":"","sources":["../../src/oidc/vanilla/vanillaOidc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAC,MAAM,QAAQ,CAAC;AAGzE,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AAErC,aAAK,UAAU,GAAG;IACd,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,qBAAa,WAAW;IACpB,OAAO,CAAC,KAAK,CAAO;gBACR,IAAI,EAAE,IAAI;IAGtB,eAAe,CAAC,IAAI,EAAC,QAAQ,GAAE,MAAM;IAGrC,uBAAuB,CAAC,EAAE,EAAC,MAAM,GAAE,IAAI;IAGvC,YAAY,CAAC,SAAS,EAAC,MAAM,EAAE,IAAI,EAAC,GAAG,GAAI,IAAI;IAG/C,MAAM,CAAC,WAAW,CAAC,aAAa,EAAC,iBAAiB,EAAE,IAAI,GAAC,MAAgB,GAAE,WAAW;IAGtF,MAAM,CAAC,GAAG,CAAC,IAAI,GAAC,MAAgB,GAAE,WAAW;IAG7C,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAmB;IACpC,2BAA2B,IAAG,OAAO,CAAC,OAAO,CAAC;IAG9C,UAAU,CAAC,YAAY,GAAC,MAAgB,EAAE,MAAM,GAAC,SAAc,EAAE,cAAc,GAAC,OAAa,EAAE,KAAK,GAAC,MAAgB,EAAE,eAAe,UAAQ,GAAE,OAAO,CAAC,IAAI,CAAC;IAG7J,WAAW,CAAC,iBAAiB,GAAE,MAAM,GAAG,IAAI,GAAG,SAAqB,EAAE,MAAM,GAAE,SAAgB,GAAE,OAAO,CAAC,IAAI,CAAC;IAG7G,wBAAwB,IAAG,OAAO,CAAC,GAAG,CAAC;IAGvC,gBAAgB,CAAC,MAAM,GAAC,SAAc,GAAE,OAAO,CAAC,IAAI,CAAC;IAGrD,kBAAkB,IAAG,OAAO,CAAC,aAAa,CAAC;IAG3C,IAAI,MAAM,IAAG,MAAM,CAElB;IACD,IAAI,aAAa,IAAG,iBAAiB,CAEpC;IACK,kBAAkB,CAAC,MAAM,SAAI,EAAE,UAAU,SAAG,GAAI,OAAO,CAAC,UAAU,CAAC;IAcnE,aAAa,IAAG,OAAO,CAAC,GAAG,CAAC;CAGrC"}
1
+ {"version":3,"file":"vanillaOidc.d.ts","sourceRoot":"","sources":["../../src/oidc/vanilla/vanillaOidc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAC,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAoC,UAAU,EAAC,MAAM,eAAe,CAAC;AAE5E,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AAGrC,qBAAa,WAAW;IACpB,OAAO,CAAC,KAAK,CAAO;gBACR,IAAI,EAAE,IAAI;IAGtB,eAAe,CAAC,IAAI,EAAC,QAAQ,GAAE,MAAM;IAGrC,uBAAuB,CAAC,EAAE,EAAC,MAAM,GAAE,IAAI;IAGvC,YAAY,CAAC,SAAS,EAAC,MAAM,EAAE,IAAI,EAAC,GAAG,GAAI,IAAI;IAG/C,MAAM,CAAC,WAAW,CAAC,aAAa,EAAC,iBAAiB,EAAE,IAAI,GAAC,MAAgB,GAAE,WAAW;IAGtF,MAAM,CAAC,GAAG,CAAC,IAAI,GAAC,MAAgB,GAAE,WAAW;IAG7C,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAmB;IACpC,2BAA2B,IAAG,OAAO,CAAC,OAAO,CAAC;IAG9C,UAAU,CAAC,YAAY,GAAC,MAAgB,EAAE,MAAM,GAAC,SAAc,EAAE,cAAc,GAAC,OAAa,EAAE,KAAK,GAAC,MAAgB,EAAE,eAAe,UAAQ,GAAE,OAAO,CAAC,IAAI,CAAC;IAG7J,WAAW,CAAC,iBAAiB,GAAE,MAAM,GAAG,IAAI,GAAG,SAAqB,EAAE,MAAM,GAAE,SAAgB,GAAE,OAAO,CAAC,IAAI,CAAC;IAG7G,wBAAwB,IAAG,OAAO,CAAC,GAAG,CAAC;IAGvC,gBAAgB,CAAC,MAAM,GAAC,SAAc,GAAE,OAAO,CAAC,IAAI,CAAC;IAGrD,kBAAkB,IAAG,OAAO,CAAC,aAAa,CAAC;IAG3C,IAAI,MAAM,IAAG,MAAM,CAElB;IACD,IAAI,aAAa,IAAG,iBAAiB,CAEpC;IACK,kBAAkB,CAAC,MAAM,SAAI,EAAE,UAAU,SAAG,GAAI,OAAO,CAAC,UAAU,CAAC;IAGnE,aAAa,IAAG,OAAO,CAAC,GAAG,CAAC;CAGrC"}
@@ -12,7 +12,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.VanillaOidc = void 0;
13
13
  const oidc_1 = require("./oidc");
14
14
  const parseTokens_1 = require("./parseTokens");
15
- const initWorker_1 = require("./initWorker");
16
15
  class VanillaOidc {
17
16
  constructor(oidc) {
18
17
  this._oidc = oidc;
@@ -59,18 +58,7 @@ class VanillaOidc {
59
58
  }
60
59
  getValidTokenAsync(waitMs = 200, numberWait = 50) {
61
60
  return __awaiter(this, void 0, void 0, function* () {
62
- const oidc = this._oidc;
63
- let numberWaitTemp = numberWait;
64
- while (oidc.tokens && !(0, parseTokens_1.isTokensValid)(oidc.tokens) && numberWaitTemp > 0) {
65
- yield (0, initWorker_1.sleepAsync)(200);
66
- numberWaitTemp = numberWaitTemp - 1;
67
- }
68
- const isValid = !(0, parseTokens_1.isTokensValid)(oidc.tokens);
69
- return {
70
- isTokensValid: isValid,
71
- tokens: oidc.tokens,
72
- numberWaited: numberWaitTemp - numberWait
73
- };
61
+ return (0, parseTokens_1.getValidTokenAsync)(this._oidc, waitMs, numberWait);
74
62
  });
75
63
  }
76
64
  userInfoAsync() {
@@ -1 +1 @@
1
- {"version":3,"file":"vanillaOidc.js","sourceRoot":"","sources":["../../src/oidc/vanilla/vanillaOidc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vanillaOidc.js","sourceRoot":"","sources":["../../src/oidc/vanilla/vanillaOidc.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iCAAyE;AACzE,+CAA4E;AAK5E,MAAa,WAAW;IAEpB,YAAY,IAAU;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACtB,CAAC;IACD,eAAe,CAAC,IAAa;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IACD,uBAAuB,CAAC,EAAS;QAC7B,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;IACD,YAAY,CAAC,SAAgB,EAAE,IAAQ;QACnC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,CAAC,WAAW,CAAC,aAA+B,EAAE,OAAY,SAAS;QACrE,OAAO,IAAI,WAAW,CAAC,WAAI,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,OAAY,SAAS;QAC5B,OAAO,IAAI,WAAW,CAAC,WAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,2BAA2B;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,2BAA2B,EAAE,CAAC;IACpD,CAAC;IACD,UAAU,CAAC,eAAoB,SAAS,EAAE,SAAiB,IAAI,EAAE,iBAAuB,KAAK,EAAE,QAAa,SAAS,EAAE,eAAe,GAAG,KAAK;QAC1I,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;IAC/F,CAAC;IACD,WAAW,CAAC,oBAA+C,SAAS,EAAE,SAAoB,IAAI;QAC1F,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC;IACD,wBAAwB;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAC;IACjD,CAAC;IAAA,CAAC;IACF,gBAAgB,CAAC,SAAiB,IAAI;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IACD,kBAAkB;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,qCAAqC,EAAE,CAAC;IAC9D,CAAC;IACD,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC7B,CAAC;IACD,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;IACpC,CAAC;IACK,kBAAkB,CAAC,MAAM,GAAC,GAAG,EAAE,UAAU,GAAC,EAAE;;YAC9C,OAAO,IAAA,gCAAkB,EAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAC9D,CAAC;KAAA;IACK,aAAa;;YACf,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QACtC,CAAC;KAAA;;AAlDL,kCAmDC;AA/BU,sBAAU,GAAG,WAAI,CAAC,UAAU,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axa-fr/react-oidc",
3
- "version": "6.8.1",
3
+ "version": "6.8.2",
4
4
  "private": false,
5
5
  "main": "dist/index.js",
6
6
  "jsnext:main": "dist/index.js",
@@ -0,0 +1,48 @@
1
+ import {getValidTokenAsync, isTokensOidcValid} from "./parseTokens";
2
+
3
+ describe('ParseTokens test Suite', () => {
4
+ const currentTimeUnixSecond = new Date().getTime() / 1000;
5
+ describe.each([
6
+ [currentTimeUnixSecond + 120, currentTimeUnixSecond - 10, true],
7
+ [currentTimeUnixSecond - 20, currentTimeUnixSecond - 50, false],
8
+ ])('getValidTokenAsync', (expiresAt, issuedAt, expectIsValidToken) => {
9
+ it('should getValidTokenAsync wait and return value', async () => {
10
+ const oidc = {
11
+ tokens: {
12
+ refreshToken: 'youhou',
13
+ idTokenPayload: null,
14
+ idToken: 'youhou',
15
+ accessTokenPayload: null,
16
+ accessToken: 'youhou',
17
+ expiresAt: expiresAt,
18
+ issuedAt: issuedAt,
19
+ }
20
+ }
21
+ const result = await getValidTokenAsync(oidc, 1, 1);
22
+ expect(result.isTokensValid).toEqual(expectIsValidToken);
23
+ });
24
+ });
25
+
26
+
27
+ const idTokenPayload = {iss: "toto", exp: currentTimeUnixSecond +900, iat: currentTimeUnixSecond -900, nonce: "nonce"};
28
+ const oidcServerConfiguration = {issuer:"toto"};
29
+ const idTokenPayloadExpired = {...idTokenPayload, exp: currentTimeUnixSecond-20};
30
+ const idTokenPayloadIssuedTooLongTimeAgo = {...idTokenPayload, iat: currentTimeUnixSecond-20000000};
31
+
32
+ describe.each([
33
+ [idTokenPayload, "nonce", oidcServerConfiguration, true, "success"],
34
+ [idTokenPayload, "other_nonce", oidcServerConfiguration, false, "bad nonce"],
35
+ [idTokenPayload, "nonce", {issuer:"tutu"}, false, "different issuer"],
36
+ [idTokenPayloadExpired, "nonce", oidcServerConfiguration, false, "id token expired issuer"],
37
+ [idTokenPayloadIssuedTooLongTimeAgo, "nonce", oidcServerConfiguration, false, "id token expired issuer"],
38
+ ])('isTokensOidcValid', (idTokenPayload, nonce, oidcServerConfiguration, expectIsValidToken, status) => {
39
+ it('should isTokensOidcValid return ' + status, async () => {
40
+ const oidc = {
41
+ idTokenPayload
42
+ }
43
+ const isValid = await isTokensOidcValid(oidc, nonce, oidcServerConfiguration);
44
+ expect(isValid).toEqual(expectIsValidToken);
45
+ });
46
+ });
47
+
48
+ });
@@ -1,4 +1,6 @@
1
- 
1
+ import {sleepAsync} from "./initWorker";
2
+ import Oidc from "./oidc";
3
+
2
4
 
3
5
  const b64DecodeUnicode = (str) =>
4
6
  decodeURIComponent(Array.prototype.map.call(atob(str), (c) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)).join(''));
@@ -119,6 +121,31 @@ export const isTokensValid= (tokens) =>{
119
121
  return computeTimeLeft(0, tokens.expiresAt) > 0;
120
122
  }
121
123
 
124
+
125
+ export type ValidToken = {
126
+ isTokensValid: Boolean,
127
+ tokens: Tokens,
128
+ numberWaited: Number
129
+ }
130
+
131
+ export interface OidcToken{
132
+ tokens?: Tokens;
133
+ }
134
+
135
+ export const getValidTokenAsync = async (oidc: OidcToken, waitMs = 200, numberWait = 50): Promise<ValidToken> => {
136
+ let numberWaitTemp = numberWait;
137
+ while (!isTokensValid(oidc.tokens) && numberWaitTemp > 0) {
138
+ await sleepAsync(200);
139
+ numberWaitTemp = numberWaitTemp - 1;
140
+ }
141
+ const isValid = isTokensValid(oidc.tokens);
142
+ return {
143
+ isTokensValid: isValid,
144
+ tokens: oidc.tokens,
145
+ numberWaited: numberWaitTemp - numberWait
146
+ };
147
+ }
148
+
122
149
  // https://openid.net/specs/openid-connect-core-1_0.html#IDTokenValidation (excluding rules #1, #4, #5, #7, #8, #12, and #13 which did not apply).
123
150
  // https://github.com/openid/AppAuth-JS/issues/65
124
151
  export const isTokensOidcValid =(tokens, nonce, oidcServerConfiguration) =>{
@@ -1,13 +1,8 @@
1
1
  import {LoginCallback, Oidc, OidcConfiguration, StringMap} from "./oidc";
2
- import {isTokensValid} from "./parseTokens";
2
+ import {getValidTokenAsync, isTokensValid, ValidToken} from "./parseTokens";
3
3
  import {sleepAsync} from "./initWorker";
4
4
  import {Tokens} from "./parseTokens";
5
5
 
6
- type ValidToken = {
7
- isTokensValid: Boolean,
8
- tokens: Tokens,
9
- numberWaited: Number
10
- }
11
6
 
12
7
  export class VanillaOidc {
13
8
  private _oidc: Oidc;
@@ -55,18 +50,7 @@ export class VanillaOidc {
55
50
  return this._oidc.configuration;
56
51
  }
57
52
  async getValidTokenAsync(waitMs=200, numberWait=50 ): Promise<ValidToken> {
58
- const oidc = this._oidc;
59
- let numberWaitTemp = numberWait;
60
- while (oidc.tokens && !isTokensValid(oidc.tokens) && numberWaitTemp > 0) {
61
- await sleepAsync(200);
62
- numberWaitTemp=numberWaitTemp-1;
63
- }
64
- const isValid = !isTokensValid(oidc.tokens);
65
- return {
66
- isTokensValid: isValid,
67
- tokens: oidc.tokens,
68
- numberWaited: numberWaitTemp - numberWait
69
- };
53
+ return getValidTokenAsync(this._oidc, waitMs, numberWait);
70
54
  }
71
55
  async userInfoAsync():Promise<any>{
72
56
  return this._oidc.userInfoAsync();