@vocollege/app 0.0.87 → 0.0.88

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.
@@ -42,13 +42,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
42
42
  var axios_1 = __importDefault(require("axios"));
43
43
  var VoAuth_1 = __importDefault(require("./modules/VoAuth"));
44
44
  var VoRouter_1 = __importDefault(require("./modules/VoRouter"));
45
- // import VoApp from "./modules/VoApp";
46
45
  var react_toastify_1 = require("react-toastify");
47
46
  // Custom.
48
47
  var I18n_1 = __importDefault(require("./modules/Services/I18n"));
49
48
  (function () {
50
49
  var _this = this;
51
- var retry = 0;
52
50
  function redirect() {
53
51
  return __awaiter(this, void 0, void 0, function () {
54
52
  var error_1;
@@ -79,55 +77,37 @@ var I18n_1 = __importDefault(require("./modules/Services/I18n"));
79
77
  axios_1.default.interceptors.response.use(function (res) {
80
78
  return res;
81
79
  }, function (error) { return __awaiter(_this, void 0, void 0, function () {
82
- var status, _a, token, error_2;
80
+ var config, isTokeRequest, token, error_2;
81
+ var _a;
83
82
  return __generator(this, function (_b) {
84
83
  switch (_b.label) {
85
84
  case 0:
86
- status = error.response ? error.response.status : null;
87
- if (!(status && retry < 2)) return [3 /*break*/, 5];
88
- retry++;
89
- _a = status;
90
- switch (_a) {
91
- case 400: return [3 /*break*/, 1];
92
- case 401: return [3 /*break*/, 1];
93
- }
94
- return [3 /*break*/, 5];
85
+ config = error.config;
86
+ isTokeRequest = config.url.includes("oauth/token");
87
+ _b.label = 1;
95
88
  case 1:
96
- _b.trys.push([1, 3, , 4]);
89
+ _b.trys.push([1, 4, , 5]);
90
+ if (!(!isTokeRequest &&
91
+ [400, 401, 403].indexOf((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) > -1)) return [3 /*break*/, 3];
97
92
  return [4 /*yield*/, VoAuth_1.default.refreshToken()];
98
93
  case 2:
99
94
  _b.sent();
100
95
  token = VoAuth_1.default.getToken();
101
- // Update the failed request with the new access token
102
- // in order to redo the call.
103
96
  if (token) {
104
- retry = 0;
105
- error.config.headers["Authorization"] =
106
- // token.token_type + " " + token.access_token;
107
- "Bearer " + token.access_token;
97
+ config.headers["Authorization"] = "Bearer " + token.access_token;
98
+ return [2 /*return*/, axios_1.default.request(config)];
108
99
  }
109
- return [2 /*return*/, axios_1.default.request(error.config)];
110
- case 3:
100
+ _b.label = 3;
101
+ case 3: return [3 /*break*/, 5];
102
+ case 4:
111
103
  error_2 = _b.sent();
112
- redirect();
113
- console.error("Interceptor", error_2);
114
- return [3 /*break*/, 4];
115
- case 4: return [3 /*break*/, 5];
116
- case 5: return [2 /*return*/, new Promise(function (resolve, reject) {
117
- switch (status) {
118
- case 419:
119
- react_toastify_1.toast.error(I18n_1.default.get.messages.sessionExpired);
120
- // setTimeout(() => {
121
- redirect();
122
- reject(error);
123
- // }, 5000);
124
- break;
125
- default:
126
- reject(error);
127
- break;
128
- }
129
- console.error("Interceptor", error);
130
- })];
104
+ return [3 /*break*/, 5];
105
+ case 5:
106
+ if (isTokeRequest) {
107
+ react_toastify_1.toast.error(I18n_1.default.get.messages.sessionExpired, { autoClose: false });
108
+ redirect();
109
+ }
110
+ return [2 /*return*/, Promise.reject(error)];
131
111
  }
132
112
  });
133
113
  }); });
@@ -666,7 +666,7 @@
666
666
  "newVersionAvailable": "En ny version av denna applikation är tillgänglig och sidan kommer att laddas om...",
667
667
  "certifiedSince": "Certifierat sedan ::date",
668
668
  "adminDashboard01": "Välkommen till",
669
- "adminDashboard02": "Här kan du bl a hantera artiklar och dokumentbanken. Högst upp till höger väljer du vilken VoSida du vill hantera, i fall ditt konto har behörighet att hantera flera olika VoSidor.",
669
+ "adminDashboard02": "Här kan du bl a hantera artiklar och dokumentbanken. Högst upp till höger väljer du vilken VoSida/Grupp du vill hantera, i fall ditt konto har behörighet att hantera flera olika VoSidor/Grupper.",
670
670
  "adminDashboard03": "Vid frågor, vänligen kontakta oss på"
671
671
  },
672
672
  "toolbar": {
@@ -13,7 +13,7 @@ declare class VoAuth extends VoBase {
13
13
  auth(): Promise<unknown>;
14
14
  get getAuthUrl(): string;
15
15
  logout(): Promise<unknown>;
16
- setSession(token: any): void;
16
+ setSession(token: any, updateCookie?: boolean): void;
17
17
  resetSession(): void;
18
18
  refreshToken(): Promise<void | VoTokenType>;
19
19
  check(forceRedirect?: boolean, forceLoad?: boolean): Promise<any>;
@@ -196,23 +196,27 @@ var VoAuth = /** @class */ (function (_super) {
196
196
  });
197
197
  }); });
198
198
  };
199
- VoAuth.prototype.setSession = function (token) {
199
+ VoAuth.prototype.setSession = function (token, updateCookie) {
200
+ if (updateCookie === void 0) { updateCookie = true; }
200
201
  // const { token_type, access_token, refresh_token, expires_in } = token;
201
202
  var access_token = token.access_token, refresh_token = token.refresh_token;
202
- var refreshTokenKey = VoConfig_1.default.get.AUTH_STORAGE_REFRESH_TOKEN || "";
203
- // Helpers.localStorage.set(refreshTokenKey, refresh_token);
204
- js_cookie_1.default.set(refreshTokenKey, refresh_token, {
205
- expires: 11,
206
- sameSite: "Lax",
207
- domain: VoConfig_1.default.get.AUTH_DOMAIN,
208
- });
209
- var accessTokenKey = VoConfig_1.default.get.AUTH_STORAGE_ACCESS_TOKEN || "";
210
- // Helpers.localStorage.set(accessTokenKey, access_token);
211
- js_cookie_1.default.set(accessTokenKey, access_token, {
212
- expires: 1,
213
- sameSite: "Lax",
214
- domain: VoConfig_1.default.get.AUTH_DOMAIN,
215
- });
203
+ if (updateCookie) {
204
+ var refreshTokenKey = VoConfig_1.default.get.AUTH_STORAGE_REFRESH_TOKEN || "";
205
+ // Helpers.localStorage.set(refreshTokenKey, refresh_token);
206
+ js_cookie_1.default.set(refreshTokenKey, refresh_token, {
207
+ expires: 21,
208
+ sameSite: "Lax",
209
+ domain: VoConfig_1.default.get.AUTH_DOMAIN,
210
+ });
211
+ var expires = new Date(new Date().getTime() + 4 * 60 * 60 * 1000);
212
+ var accessTokenKey = VoConfig_1.default.get.AUTH_STORAGE_ACCESS_TOKEN || "";
213
+ // Helpers.localStorage.set(accessTokenKey, access_token);
214
+ js_cookie_1.default.set(accessTokenKey, access_token, {
215
+ expires: expires,
216
+ sameSite: "Lax",
217
+ domain: VoConfig_1.default.get.AUTH_DOMAIN,
218
+ });
219
+ }
216
220
  // let tokenTypeKey = VoConfig.get.AUTH_STORAGE_TOKEN_TYPE || "";
217
221
  // // Helpers.localStorage.set(tokenTypeKey, token_type);
218
222
  // JsCookies.set(tokenTypeKey, token_type, {
@@ -329,7 +333,7 @@ var VoAuth = /** @class */ (function (_super) {
329
333
  _a.label = 1;
330
334
  case 1:
331
335
  _a.trys.push([1, 3, , 4]);
332
- this.setSession(token);
336
+ this.setSession(token, forceLoad);
333
337
  return [4 /*yield*/, this.loadUser(forceLoad)];
334
338
  case 2:
335
339
  _a.sent();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vocollege/app",
3
- "version": "0.0.87",
3
+ "version": "0.0.88",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -1,15 +1,12 @@
1
1
  import axios from "axios";
2
2
  import VoAuth from "./modules/VoAuth";
3
3
  import VoRouter from "./modules/VoRouter";
4
- // import VoApp from "./modules/VoApp";
5
4
  import { toast } from "react-toastify";
6
5
 
7
6
  // Custom.
8
7
  import I18n from "./modules/Services/I18n";
9
8
 
10
9
  (function () {
11
- let retry = 0;
12
-
13
10
  async function redirect() {
14
11
  try {
15
12
  await VoAuth.logout();
@@ -32,50 +29,26 @@ import I18n from "./modules/Services/I18n";
32
29
  return res;
33
30
  },
34
31
  async (error) => {
35
- const status = error.response ? error.response.status : null;
36
-
37
- if (status && retry < 2) {
38
- retry++;
39
- switch (status) {
40
- case 400:
41
- case 401:
42
- try {
43
- await VoAuth.refreshToken();
44
- const token: any = VoAuth.getToken();
45
-
46
- // Update the failed request with the new access token
47
- // in order to redo the call.
48
- if (token) {
49
- retry = 0;
50
- error.config.headers["Authorization"] =
51
- // token.token_type + " " + token.access_token;
52
- "Bearer " + token.access_token;
53
- }
54
-
55
- return axios.request(error.config);
56
- } catch (error) {
57
- redirect();
58
- console.error("Interceptor", error);
59
- }
60
- break;
32
+ const { config } = error;
33
+ let isTokeRequest = config.url.includes("oauth/token");
34
+ try {
35
+ if (
36
+ !isTokeRequest &&
37
+ [400, 401, 403].indexOf(error.response?.status) > -1
38
+ ) {
39
+ await VoAuth.refreshToken();
40
+ const token: any = VoAuth.getToken();
41
+ if (token) {
42
+ config.headers["Authorization"] = "Bearer " + token.access_token;
43
+ return axios.request(config);
44
+ }
61
45
  }
46
+ } catch (error) {}
47
+ if (isTokeRequest) {
48
+ toast.error(I18n.get.messages.sessionExpired, { autoClose: false });
49
+ redirect();
62
50
  }
63
-
64
- return new Promise((resolve, reject) => {
65
- switch (status) {
66
- case 419:
67
- toast.error(I18n.get.messages.sessionExpired);
68
- // setTimeout(() => {
69
- redirect();
70
- reject(error);
71
- // }, 5000);
72
- break;
73
- default:
74
- reject(error);
75
- break;
76
- }
77
- console.error("Interceptor", error);
78
- });
51
+ return Promise.reject(error);
79
52
  }
80
53
  );
81
54
  })();
@@ -666,7 +666,7 @@
666
666
  "newVersionAvailable": "En ny version av denna applikation är tillgänglig och sidan kommer att laddas om...",
667
667
  "certifiedSince": "Certifierat sedan ::date",
668
668
  "adminDashboard01": "Välkommen till",
669
- "adminDashboard02": "Här kan du bl a hantera artiklar och dokumentbanken. Högst upp till höger väljer du vilken VoSida du vill hantera, i fall ditt konto har behörighet att hantera flera olika VoSidor.",
669
+ "adminDashboard02": "Här kan du bl a hantera artiklar och dokumentbanken. Högst upp till höger väljer du vilken VoSida/Grupp du vill hantera, i fall ditt konto har behörighet att hantera flera olika VoSidor/Grupper.",
670
670
  "adminDashboard03": "Vid frågor, vänligen kontakta oss på"
671
671
  },
672
672
  "toolbar": {
@@ -98,25 +98,28 @@ class VoAuth extends VoBase {
98
98
  });
99
99
  }
100
100
 
101
- setSession(token: any) {
101
+ setSession(token: any, updateCookie = true) {
102
102
  // const { token_type, access_token, refresh_token, expires_in } = token;
103
103
  const { access_token, refresh_token } = token;
104
104
 
105
- let refreshTokenKey = VoConfig.get.AUTH_STORAGE_REFRESH_TOKEN || "";
106
- // Helpers.localStorage.set(refreshTokenKey, refresh_token);
107
- JsCookies.set(refreshTokenKey, refresh_token, {
108
- expires: 11,
109
- sameSite: "Lax",
110
- domain: VoConfig.get.AUTH_DOMAIN,
111
- });
105
+ if (updateCookie) {
106
+ let refreshTokenKey = VoConfig.get.AUTH_STORAGE_REFRESH_TOKEN || "";
107
+ // Helpers.localStorage.set(refreshTokenKey, refresh_token);
108
+ JsCookies.set(refreshTokenKey, refresh_token, {
109
+ expires: 21,
110
+ sameSite: "Lax",
111
+ domain: VoConfig.get.AUTH_DOMAIN,
112
+ });
112
113
 
113
- let accessTokenKey = VoConfig.get.AUTH_STORAGE_ACCESS_TOKEN || "";
114
- // Helpers.localStorage.set(accessTokenKey, access_token);
115
- JsCookies.set(accessTokenKey, access_token, {
116
- expires: 1,
117
- sameSite: "Lax",
118
- domain: VoConfig.get.AUTH_DOMAIN,
119
- });
114
+ let expires = new Date(new Date().getTime() + 4 * 60 * 60 * 1000);
115
+ let accessTokenKey = VoConfig.get.AUTH_STORAGE_ACCESS_TOKEN || "";
116
+ // Helpers.localStorage.set(accessTokenKey, access_token);
117
+ JsCookies.set(accessTokenKey, access_token, {
118
+ expires,
119
+ sameSite: "Lax",
120
+ domain: VoConfig.get.AUTH_DOMAIN,
121
+ });
122
+ }
120
123
 
121
124
  // let tokenTypeKey = VoConfig.get.AUTH_STORAGE_TOKEN_TYPE || "";
122
125
  // // Helpers.localStorage.set(tokenTypeKey, token_type);
@@ -228,7 +231,7 @@ class VoAuth extends VoBase {
228
231
 
229
232
  if (token) {
230
233
  try {
231
- this.setSession(token);
234
+ this.setSession(token, forceLoad);
232
235
  await this.loadUser(forceLoad);
233
236
  resolve(this.user);
234
237
  } catch (error) {