@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.
- package/dist/interceptor.js +20 -40
- package/dist/modules/Services/I18n/strings.json +1 -1
- package/dist/modules/VoAuth.d.ts +1 -1
- package/dist/modules/VoAuth.js +20 -16
- package/package.json +1 -1
- package/src/interceptor.ts +18 -45
- package/src/modules/Services/I18n/strings.json +1 -1
- package/src/modules/VoAuth.ts +19 -16
package/dist/interceptor.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
87
|
-
|
|
88
|
-
|
|
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,
|
|
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
|
-
|
|
105
|
-
|
|
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
|
-
|
|
110
|
-
case 3:
|
|
100
|
+
_b.label = 3;
|
|
101
|
+
case 3: return [3 /*break*/, 5];
|
|
102
|
+
case 4:
|
|
111
103
|
error_2 = _b.sent();
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
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": {
|
package/dist/modules/VoAuth.d.ts
CHANGED
|
@@ -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>;
|
package/dist/modules/VoAuth.js
CHANGED
|
@@ -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
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
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
package/src/interceptor.ts
CHANGED
|
@@ -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
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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": {
|
package/src/modules/VoAuth.ts
CHANGED
|
@@ -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
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
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
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
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) {
|