@osimatic/helpers-js 1.2.2 → 1.2.3
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/http_client.js +25 -5
- package/jwt.js +30 -17
- package/package.json +1 -1
package/http_client.js
CHANGED
|
@@ -13,6 +13,10 @@ class HTTPClient {
|
|
|
13
13
|
HTTPClient.refreshTokenCallback = callback;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
static setGetRefreshTokenCallback(callback) {
|
|
17
|
+
HTTPClient.getRefreshTokenCallback = callback;
|
|
18
|
+
}
|
|
19
|
+
|
|
16
20
|
static setOnSuccessRefreshTokenCallback(callback) {
|
|
17
21
|
HTTPClient.onSuccessRefreshTokenCallback = callback;
|
|
18
22
|
}
|
|
@@ -194,7 +198,11 @@ class HTTPClient {
|
|
|
194
198
|
}
|
|
195
199
|
|
|
196
200
|
static onInvalidToken() {
|
|
197
|
-
|
|
201
|
+
if (typeof HTTPClient.onInvalidTokenCallback == 'function') {
|
|
202
|
+
HTTPClient.onInvalidTokenCallback();
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
JwtSession.logout(HTTPClient.onInvalidTokenRedirectUrl);
|
|
198
206
|
}
|
|
199
207
|
|
|
200
208
|
static async request(method, url, data, successCallback=null, errorCallback=null, formErrorCallback=null, additionalHeaders={}, sendAuthorizationHeader=true) {
|
|
@@ -399,18 +407,30 @@ class HTTPClient {
|
|
|
399
407
|
return;
|
|
400
408
|
}
|
|
401
409
|
|
|
410
|
+
const refreshToken = typeof HTTPClient.getRefreshTokenCallback == 'function' ? HTTPClient.getRefreshTokenCallback() : JwtSession.getRefreshToken();
|
|
411
|
+
|
|
402
412
|
console.log('HTTPClient.refreshToken : Appel HTTP vers HTTPClient.refreshTokenUrl');
|
|
403
413
|
let payload = new FormData();
|
|
404
|
-
payload.append('refresh_token',
|
|
414
|
+
payload.append('refresh_token', refreshToken);
|
|
405
415
|
|
|
406
416
|
HTTPClient.request('POST', HTTPClient.refreshTokenUrl, payload,
|
|
407
417
|
(data) => {
|
|
408
|
-
|
|
409
|
-
|
|
418
|
+
if (typeof HTTPClient.onSuccessRefreshTokenCallback == 'function') {
|
|
419
|
+
HTTPClient.onSuccessRefreshTokenCallback(data['token'], data['refresh_token']);
|
|
420
|
+
}
|
|
421
|
+
else {
|
|
422
|
+
JwtSession.updateToken(data['token'], data['refresh_token']);
|
|
423
|
+
HTTPClient.setAuthorizationToken(JwtSession.getToken());
|
|
424
|
+
}
|
|
410
425
|
onRefreshTokenComplete();
|
|
411
426
|
},
|
|
412
427
|
() => {
|
|
413
|
-
|
|
428
|
+
if (typeof HTTPClient.onInvalidRefreshTokenCallback == 'function') {
|
|
429
|
+
HTTPClient.onInvalidRefreshTokenCallback();
|
|
430
|
+
}
|
|
431
|
+
else {
|
|
432
|
+
JwtSession.expireSession(HTTPClient.onInvalidRefreshTokenRedirectUrl);
|
|
433
|
+
}
|
|
414
434
|
if (typeof errorCallback == 'function') {
|
|
415
435
|
errorCallback();
|
|
416
436
|
}
|
package/jwt.js
CHANGED
|
@@ -32,6 +32,9 @@ class JwtToken {
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
class JwtSession {
|
|
35
|
+
/*static setStorage(storage) {
|
|
36
|
+
JwtSession.storage = storage;
|
|
37
|
+
}*/
|
|
35
38
|
static setOnLoginCallback(callback) {
|
|
36
39
|
JwtSession.onLoginCallback = callback;
|
|
37
40
|
}
|
|
@@ -45,18 +48,28 @@ class JwtSession {
|
|
|
45
48
|
JwtSession.onSessionExpireCallback = callback;
|
|
46
49
|
}
|
|
47
50
|
|
|
51
|
+
static getItemInStorage(key) {
|
|
52
|
+
return localStorage.getItem(key);
|
|
53
|
+
}
|
|
54
|
+
static setItemInStorage(key, value) {
|
|
55
|
+
localStorage.setItem(key, value);
|
|
56
|
+
}
|
|
57
|
+
static removeItemInStorage(key) {
|
|
58
|
+
localStorage.removeItem(key);
|
|
59
|
+
}
|
|
60
|
+
|
|
48
61
|
static getToken() {
|
|
49
|
-
return
|
|
62
|
+
return JwtSession.getItemInStorage('access_token');
|
|
50
63
|
}
|
|
51
64
|
static setToken(token) {
|
|
52
|
-
|
|
65
|
+
JwtSession.setItemInStorage('access_token', token);
|
|
53
66
|
}
|
|
54
67
|
|
|
55
68
|
static getRefreshToken() {
|
|
56
|
-
return
|
|
69
|
+
return JwtSession.getItemInStorage('refresh_token');
|
|
57
70
|
}
|
|
58
71
|
static setRefreshToken(token) {
|
|
59
|
-
|
|
72
|
+
JwtSession.setItemInStorage('refresh_token', token);
|
|
60
73
|
}
|
|
61
74
|
|
|
62
75
|
static login(data, redirectUrl, onComplete) {
|
|
@@ -64,7 +77,7 @@ class JwtSession {
|
|
|
64
77
|
JwtSession.setToken(data['access_token'] || data['token']);
|
|
65
78
|
JwtSession.setRefreshToken(data['refresh_token']);
|
|
66
79
|
|
|
67
|
-
|
|
80
|
+
JwtSession.removeItemInStorage('real_users');
|
|
68
81
|
|
|
69
82
|
if (typeof JwtSession.onLoginCallback == 'function') {
|
|
70
83
|
JwtSession.onLoginCallback();
|
|
@@ -90,16 +103,16 @@ class JwtSession {
|
|
|
90
103
|
JwtSession.onNewTokenCallback();
|
|
91
104
|
}
|
|
92
105
|
if (typeof onComplete == 'function') {
|
|
93
|
-
onComplete();
|
|
106
|
+
onComplete(accessToken, refreshToken);
|
|
94
107
|
}
|
|
95
108
|
}
|
|
96
109
|
|
|
97
110
|
static logout(redirectUrl, onComplete) {
|
|
98
111
|
console.log('JwtSession.logout()');
|
|
99
|
-
|
|
100
|
-
|
|
112
|
+
JwtSession.removeItemInStorage('access_token');
|
|
113
|
+
JwtSession.removeItemInStorage('refresh_token');
|
|
101
114
|
|
|
102
|
-
|
|
115
|
+
JwtSession.removeItemInStorage('real_users');
|
|
103
116
|
|
|
104
117
|
if (typeof JwtSession.onLogoutCallback == 'function') {
|
|
105
118
|
JwtSession.onLogoutCallback();
|
|
@@ -115,10 +128,10 @@ class JwtSession {
|
|
|
115
128
|
|
|
116
129
|
static expireSession(redirectUrl, onComplete) {
|
|
117
130
|
console.log('JwtSession.expireSession()');
|
|
118
|
-
|
|
119
|
-
|
|
131
|
+
JwtSession.removeItemInStorage('access_token');
|
|
132
|
+
JwtSession.removeItemInStorage('refresh_token');
|
|
120
133
|
|
|
121
|
-
|
|
134
|
+
JwtSession.removeItemInStorage('real_users');
|
|
122
135
|
|
|
123
136
|
if (typeof JwtSession.onSessionExpireCallback == 'function') {
|
|
124
137
|
JwtSession.onSessionExpireCallback();
|
|
@@ -137,7 +150,7 @@ class JwtSession {
|
|
|
137
150
|
}
|
|
138
151
|
|
|
139
152
|
static isAnonymous() {
|
|
140
|
-
return
|
|
153
|
+
return JwtSession.getItemInStorage('access_token') == null;
|
|
141
154
|
}
|
|
142
155
|
|
|
143
156
|
static isGranted(role) {
|
|
@@ -159,8 +172,8 @@ class JwtSession {
|
|
|
159
172
|
|
|
160
173
|
static getRealLoggedUsers() {
|
|
161
174
|
let realUsers = [];
|
|
162
|
-
if (
|
|
163
|
-
realUsers = JSON.parse(
|
|
175
|
+
if (JwtSession.getItemInStorage('real_users') != null) {
|
|
176
|
+
realUsers = JSON.parse(JwtSession.getItemInStorage('real_users'));
|
|
164
177
|
}
|
|
165
178
|
return realUsers;
|
|
166
179
|
}
|
|
@@ -174,7 +187,7 @@ class JwtSession {
|
|
|
174
187
|
access_token: JwtSession.getToken(),
|
|
175
188
|
refresh_token: JwtSession.getRefreshToken(),
|
|
176
189
|
});
|
|
177
|
-
|
|
190
|
+
JwtSession.setItemInStorage('real_users', JSON.stringify(realUsers));
|
|
178
191
|
|
|
179
192
|
// on enregistre la session de l'utilisateur simulé
|
|
180
193
|
JwtSession.setToken(loginData['access_token'] || loginData['token']);
|
|
@@ -200,7 +213,7 @@ class JwtSession {
|
|
|
200
213
|
return;
|
|
201
214
|
}
|
|
202
215
|
|
|
203
|
-
|
|
216
|
+
JwtSession.setItemInStorage('real_users', JSON.stringify(realUsers));
|
|
204
217
|
|
|
205
218
|
JwtSession.setToken(loginData['access_token'] || loginData['token']);
|
|
206
219
|
JwtSession.setRefreshToken(loginData['refresh_token']);
|