@tapni/auth 1.0.23 → 1.0.25
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/.vite/manifest.json +12 -12
- package/dist/{Apps-CDylX6XF.js → Apps-DRn32wko.js} +1 -1
- package/dist/{Billing-C7NEN6ly.js → Billing-DXzUPyml.js} +1 -1
- package/dist/{CustomApp-Bn5jb23U.js → CustomApp-BwG147po.js} +1 -1
- package/dist/{General-8V7ImNYJ.js → General-gY3lasGl.js} +1 -1
- package/dist/{QR-CAm_0ybY.js → QR-BX90Rc07.js} +1 -1
- package/dist/TapniAuth.es.js +1 -1
- package/dist/TapniAuth.umd.js +23 -23
- package/dist/{install-D44Xv90L.js → install-0j3SGM_o.js} +3425 -3646
- package/dist/style.css +1 -1
- package/package.json +2 -2
- package/src/App.vue +7 -8
- package/src/mixins/global.mixin.js +1 -1
- package/src/mixins/microsoft.mixin.js +1 -1
- package/src/mixins/okta.mixin.js +1 -1
- package/src/mixins/saml.mixin.js +2 -9
- package/src/services/UtilService.js +15 -15
- package/src/store/auth.js +390 -390
- package/src/store/locales/cn.js +33 -1
- package/src/store/locales/de.js +39 -1
- package/src/store/locales/es.js +34 -1
- package/src/store/locales/fr.js +34 -1
- package/src/store/locales/it.js +34 -1
- package/src/store/locales/kr.js +34 -1
- package/src/store/locales/sr.js +37 -1
- package/src/store/locales/tr.js +40 -1
- package/src/views/Account.vue +0 -2
- package/src/views/Security.vue +0 -1
- package/src/views/Welcome.vue +2 -7
- package/dist/blank.html +0 -31
- package/src/assets/index.css +0 -199
- package/src/components/DELETE_Language.vue +0 -168
- package/src/components/DELETE_LinkIcon.vue +0 -237
- package/src/components/DELETE_ModalOverlay.vue +0 -68
- package/src/components/DELETE_OTP.vue +0 -105
- package/src/components/DELETE_SSO.vue +0 -120
- package/src/components/DELETE_SSOPick.vue +0 -111
- package/src/mixins/DELETE_mfa-auth.mixin.js +0 -53
package/src/store/auth.js
CHANGED
|
@@ -14,7 +14,7 @@ import sr from "../store/locales/sr.js";
|
|
|
14
14
|
import tr from "../store/locales/tr.js";
|
|
15
15
|
import cn from "../store/locales/cn.js";
|
|
16
16
|
import kr from "../store/locales/kr.js";
|
|
17
|
-
import {EventBus} from "@/store/event-bus.js";
|
|
17
|
+
import { EventBus } from "@/store/event-bus.js";
|
|
18
18
|
import router from '../router/index.js';
|
|
19
19
|
export default {
|
|
20
20
|
namespaced: true,
|
|
@@ -96,7 +96,7 @@ export default {
|
|
|
96
96
|
state.$storex.refreshTokens = refreshTokens;
|
|
97
97
|
},
|
|
98
98
|
setRefreshToken(state, token) {
|
|
99
|
-
if(!token) return;
|
|
99
|
+
if (!token) return;
|
|
100
100
|
let refreshTokens = state.$storex.refreshTokens ? state.$storex.refreshTokens.split(",") : [];
|
|
101
101
|
refreshTokens = [token, ...refreshTokens.filter(t => t !== token)];
|
|
102
102
|
state.$storex.refreshTokens = refreshTokens.join(",");
|
|
@@ -130,425 +130,425 @@ export default {
|
|
|
130
130
|
},
|
|
131
131
|
},
|
|
132
132
|
actions: {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
133
|
+
async getAccountSettings({ state, commit, dispatch }) {
|
|
134
|
+
const [err, response] = await to(
|
|
135
|
+
AuthService.getAccountSettings()
|
|
136
|
+
);
|
|
137
|
+
if (err) return dispatch('errorHandler', err);
|
|
138
|
+
if (response.data.success) {
|
|
139
|
+
commit('setAccountSettings', response.data.data);
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
setStorageItem({ commit }, item) {
|
|
143
|
+
commit('setStorageItem', item);
|
|
144
|
+
},
|
|
145
|
+
setStorage({ commit }, storage) {
|
|
146
|
+
commit('setStorage', storage);
|
|
147
|
+
},
|
|
148
|
+
errorHandler({ dispatch }, error) {
|
|
149
|
+
if (
|
|
150
|
+
error &&
|
|
151
|
+
error.response &&
|
|
152
|
+
error.response.data &&
|
|
153
|
+
error.response.data.error
|
|
154
|
+
) {
|
|
155
|
+
if (error.response.data.error === "ACCESS_DENIED") {
|
|
156
|
+
return dispatch('logout');
|
|
140
157
|
}
|
|
141
|
-
},
|
|
142
|
-
setStorageItem({ commit }, item) {
|
|
143
|
-
commit('setStorageItem', item);
|
|
144
|
-
},
|
|
145
|
-
setStorage({ commit }, storage) {
|
|
146
|
-
commit('setStorage', storage);
|
|
147
|
-
},
|
|
148
|
-
errorHandler({ dispatch }, error) {
|
|
149
|
-
if (
|
|
150
|
-
error &&
|
|
151
|
-
error.response &&
|
|
152
|
-
error.response.data &&
|
|
153
|
-
error.response.data.error
|
|
154
|
-
) {
|
|
155
|
-
if (error.response.data.error === "ACCESS_DENIED") {
|
|
156
|
-
return dispatch('logout');
|
|
157
|
-
}
|
|
158
158
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
159
|
+
if (error.response.data.error === 'OTP_REQUIRED') {
|
|
160
|
+
return EventBus.$emit('toggleOTPField', true);
|
|
161
|
+
}
|
|
162
162
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
163
|
+
// Link click network error bug fix
|
|
164
|
+
if (
|
|
165
|
+
!error.response.data.error.includes("Network Error") &&
|
|
166
|
+
!error.response.data.error.includes("TOKEN_EXPIRED") &&
|
|
167
|
+
!error.response.data.error.includes("Cannot read properties")
|
|
168
|
+
) {
|
|
169
|
+
dispatch('errorSnack', error.response.data.error);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return error;
|
|
173
|
+
},
|
|
174
|
+
errorSnack({ commit }, message) {
|
|
175
|
+
let snackbar = document.getElementById("snackbar");
|
|
176
|
+
let errMessage = document.getElementById("errorMessage");
|
|
177
|
+
let errorSnack = document.getElementById("errorSnack");
|
|
178
|
+
errMessage.innerHTML = message;
|
|
179
|
+
snackbar.classList.add("show-snack");
|
|
180
|
+
errorSnack.classList.add("active-snack");
|
|
181
|
+
setTimeout(function () {
|
|
182
|
+
errorSnack.classList.remove("active-snack");
|
|
183
|
+
snackbar.classList.remove("show-snack");
|
|
184
|
+
}, 3000);
|
|
185
|
+
},
|
|
186
|
+
successSnack({ commit }, message) {
|
|
187
|
+
let snackbar = document.getElementById("snackbar");
|
|
188
|
+
let successMessage = document.getElementById("successMessage");
|
|
189
|
+
let successSnack = document.getElementById("successSnack");
|
|
190
|
+
successMessage.innerHTML = message;
|
|
191
|
+
snackbar.classList.add("show-snack");
|
|
192
|
+
successSnack.classList.add("active-snack");
|
|
193
|
+
setTimeout(function () {
|
|
194
|
+
successSnack.classList.remove("active-snack");
|
|
195
|
+
snackbar.classList.remove("show-snack");
|
|
196
|
+
}, 3000);
|
|
197
|
+
},
|
|
198
|
+
closeSnacks({ commit }) {
|
|
199
|
+
document.getElementById("snackbar").classList.remove("show-snack");
|
|
200
|
+
document.getElementById("successSnack").classList.remove("active-snack");
|
|
201
|
+
document.getElementById("errorSnack").classList.remove("active-snack");
|
|
202
|
+
},
|
|
203
|
+
async eventLog({ commit, dispatch }, data) {
|
|
204
|
+
const [err, response] = await to(
|
|
205
|
+
UserService.eventLog(data)
|
|
206
|
+
);
|
|
207
|
+
if (err) return dispatch('errorHandler', err);
|
|
208
|
+
return response;
|
|
209
|
+
},
|
|
210
|
+
async maintenance({ commit }) {
|
|
211
|
+
const [err, response] = await to(
|
|
212
|
+
axios.get("https://status.tapni.co/data/maintenance.json")
|
|
213
|
+
);
|
|
214
|
+
if (err) return console.error(err);
|
|
215
|
+
if (response) {
|
|
216
|
+
let maintenanceState = response.data;
|
|
217
|
+
if (typeof response.data === "string") {
|
|
218
|
+
maintenanceState = JSON.parse(response.data);
|
|
171
219
|
}
|
|
172
|
-
return error;
|
|
173
|
-
},
|
|
174
|
-
errorSnack({ commit }, message) {
|
|
175
|
-
let snackbar = document.getElementById("snackbar");
|
|
176
|
-
let errMessage = document.getElementById("errorMessage");
|
|
177
|
-
let errorSnack = document.getElementById("errorSnack");
|
|
178
|
-
errMessage.innerHTML = message;
|
|
179
|
-
snackbar.classList.add("show-snack");
|
|
180
|
-
errorSnack.classList.add("active-snack");
|
|
181
|
-
setTimeout(function () {
|
|
182
|
-
errorSnack.classList.remove("active-snack");
|
|
183
|
-
snackbar.classList.remove("show-snack");
|
|
184
|
-
}, 3000);
|
|
185
|
-
},
|
|
186
|
-
successSnack({ commit }, message) {
|
|
187
|
-
let snackbar = document.getElementById("snackbar");
|
|
188
|
-
let successMessage = document.getElementById("successMessage");
|
|
189
|
-
let successSnack = document.getElementById("successSnack");
|
|
190
|
-
successMessage.innerHTML = message;
|
|
191
|
-
snackbar.classList.add("show-snack");
|
|
192
|
-
successSnack.classList.add("active-snack");
|
|
193
|
-
setTimeout(function () {
|
|
194
|
-
successSnack.classList.remove("active-snack");
|
|
195
|
-
snackbar.classList.remove("show-snack");
|
|
196
|
-
}, 3000);
|
|
197
|
-
},
|
|
198
|
-
closeSnacks({ commit }) {
|
|
199
|
-
document.getElementById("snackbar").classList.remove("show-snack");
|
|
200
|
-
document.getElementById("successSnack").classList.remove("active-snack");
|
|
201
|
-
document.getElementById("errorSnack").classList.remove("active-snack");
|
|
202
|
-
},
|
|
203
|
-
async eventLog({ commit, dispatch }, data) {
|
|
204
|
-
const [err, response] = await to(
|
|
205
|
-
UserService.eventLog(data)
|
|
206
|
-
);
|
|
207
|
-
if (err) return dispatch('errorHandler', err);
|
|
208
|
-
return response;
|
|
209
|
-
},
|
|
210
|
-
async maintenance({ commit }) {
|
|
211
|
-
const [err, response] = await to(
|
|
212
|
-
axios.get("https://status.tapni.co/data/maintenance.json")
|
|
213
|
-
);
|
|
214
|
-
if (err) return console.error(err);
|
|
215
|
-
if (response) {
|
|
216
|
-
let maintenanceState = response.data;
|
|
217
|
-
if (typeof response.data === "string") {
|
|
218
|
-
maintenanceState = JSON.parse(response.data);
|
|
219
|
-
}
|
|
220
220
|
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
}
|
|
221
|
+
if (maintenanceState.api && maintenanceState.api.maintenanceActive) {
|
|
222
|
+
location.href =
|
|
223
|
+
"https://t.link/maintenance?msg=" + maintenanceState.api.msg;
|
|
225
224
|
}
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
225
|
+
}
|
|
226
|
+
},
|
|
227
|
+
async loginSetup({ commit, dispatch }, response) {
|
|
228
|
+
// Save Refresh Token
|
|
229
|
+
if (response.data.refreshToken) commit('setRefreshToken', response.data.refreshToken);
|
|
230
230
|
|
|
231
|
-
|
|
232
|
-
|
|
231
|
+
// Save Access Token
|
|
232
|
+
if (response.data.token) commit('setToken', response.data.token);
|
|
233
233
|
|
|
234
|
-
|
|
234
|
+
commit('setLoggedInUserId', response.data.data.id);
|
|
235
235
|
|
|
236
|
-
|
|
237
|
-
|
|
236
|
+
commit('setStorage', {
|
|
237
|
+
UserId: response.data.data.id,
|
|
238
|
+
username: response.data.data.username,
|
|
239
|
+
localUser: response.data.data
|
|
240
|
+
})
|
|
241
|
+
|
|
242
|
+
if (response.isModal === true) {
|
|
243
|
+
dispatch('setLoggedInAccounts', [
|
|
244
|
+
{
|
|
245
|
+
id: response.data.data.id,
|
|
238
246
|
username: response.data.data.username,
|
|
239
|
-
|
|
247
|
+
name: response.data.data.name,
|
|
248
|
+
refreshToken: response.data.refreshToken,
|
|
249
|
+
photo: response.data.data.photo,
|
|
250
|
+
},
|
|
251
|
+
]);
|
|
252
|
+
}
|
|
253
|
+
},
|
|
254
|
+
async switchAccount({ commit, dispatch, state }, username) {
|
|
255
|
+
if (state.loggedInAccounts[username]) {
|
|
256
|
+
commit('setStorage', {
|
|
257
|
+
username: username,
|
|
258
|
+
UserId: state.loggedInAccounts[username].id,
|
|
259
|
+
localUser: state.loggedInAccounts[username]
|
|
240
260
|
})
|
|
261
|
+
commit('setLoggedInUserId', state.loggedInAccounts[username].id);
|
|
262
|
+
commit('setRefreshToken', state.loggedInAccounts[username].refreshToken);
|
|
263
|
+
await dispatch('refreshTokenAction', state.loggedInAccounts[username]);
|
|
264
|
+
}
|
|
265
|
+
EventBus.$emit("ssoEvent", { name: "switchAccount", data: { username }, });
|
|
266
|
+
},
|
|
267
|
+
async refreshTokenAction({ dispatch, commit, state, getters }, data) {
|
|
268
|
+
if (state.refreshing) {
|
|
269
|
+
return null;
|
|
270
|
+
}
|
|
241
271
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
}
|
|
253
|
-
},
|
|
254
|
-
async switchAccount({ commit, dispatch, state }, username) {
|
|
255
|
-
if (state.loggedInAccounts[username]) {
|
|
256
|
-
commit('setStorage', {
|
|
257
|
-
username: username,
|
|
258
|
-
UserId: state.loggedInAccounts[username].id,
|
|
259
|
-
localUser: state.loggedInAccounts[username]
|
|
260
|
-
})
|
|
261
|
-
commit('setLoggedInUserId', state.loggedInAccounts[username].id);
|
|
262
|
-
commit('setRefreshToken', state.loggedInAccounts[username].refreshToken);
|
|
263
|
-
await dispatch('refreshTokenAction', state.loggedInAccounts[username]);
|
|
264
|
-
}
|
|
265
|
-
EventBus.$emit("ssoEvent", { name: "switchAccount", data: { username }, });
|
|
266
|
-
},
|
|
267
|
-
async refreshTokenAction({ dispatch, commit, state, getters }, data) {
|
|
268
|
-
if (state.refreshing) {
|
|
269
|
-
return null;
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
state.refreshing = true;
|
|
273
|
-
const [err, response] = await to(
|
|
274
|
-
AuthService.refreshToken({
|
|
275
|
-
id: data.id,
|
|
276
|
-
refreshToken: getters.refreshTokens[0],
|
|
277
|
-
refreshTokenAction: true
|
|
278
|
-
})
|
|
279
|
-
);
|
|
280
|
-
if (err && err.response && err.response.data.error === "ACCESS_DENIED") {
|
|
281
|
-
dispatch('logout', { refreshToken: getters.refreshTokens[0] });
|
|
282
|
-
|
|
283
|
-
setTimeout(() => {
|
|
284
|
-
return location.reload();
|
|
285
|
-
}, 1500)
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
// Set new access token
|
|
289
|
-
if (response && response.data) {
|
|
290
|
-
commit('setToken', response.data.token);
|
|
291
|
-
EventBus.$emit("ssoEvent", { name: "setStorage", data: state.$storex });
|
|
292
|
-
}
|
|
293
|
-
state.refreshing = false;
|
|
294
|
-
},
|
|
295
|
-
async login({ commit, state, dispatch }, data) {
|
|
296
|
-
const [err, response] = await to(AuthService.login(data));
|
|
297
|
-
if (err) return dispatch('errorHandler', err);
|
|
298
|
-
if (response.data.success) {
|
|
299
|
-
if (state.display !== 'popup') {
|
|
300
|
-
dispatch('loginSetup', { ...response, isModal: data.isModal });
|
|
301
|
-
await dispatch('getLoggedInAccounts');
|
|
302
|
-
}
|
|
272
|
+
state.refreshing = true;
|
|
273
|
+
const [err, response] = await to(
|
|
274
|
+
AuthService.refreshToken({
|
|
275
|
+
id: data.id,
|
|
276
|
+
refreshToken: getters.refreshTokens[0],
|
|
277
|
+
refreshTokenAction: true
|
|
278
|
+
})
|
|
279
|
+
);
|
|
280
|
+
if (err && err.response && err.response.data.error === "ACCESS_DENIED") {
|
|
281
|
+
dispatch('logout', { refreshToken: getters.refreshTokens[0] });
|
|
303
282
|
|
|
304
|
-
|
|
283
|
+
setTimeout(() => {
|
|
284
|
+
return location.reload();
|
|
285
|
+
}, 1500)
|
|
286
|
+
}
|
|
305
287
|
|
|
306
|
-
|
|
288
|
+
// Set new access token
|
|
289
|
+
if (response && response.data) {
|
|
290
|
+
commit('setToken', response.data.token);
|
|
291
|
+
EventBus.$emit("ssoEvent", { name: "setStorage", data: state.$storex });
|
|
292
|
+
}
|
|
293
|
+
state.refreshing = false;
|
|
294
|
+
},
|
|
295
|
+
async login({ commit, state, dispatch }, data) {
|
|
296
|
+
const [err, response] = await to(AuthService.login(data));
|
|
297
|
+
if (err) return dispatch('errorHandler', err);
|
|
298
|
+
if (response.data.success) {
|
|
299
|
+
if (state.display !== 'popup') {
|
|
300
|
+
dispatch('loginSetup', { ...response, isModal: data.isModal });
|
|
301
|
+
await dispatch('getLoggedInAccounts');
|
|
307
302
|
}
|
|
308
|
-
},
|
|
309
|
-
loginSuccess({ commit, state, dispatch, getters }, response) {
|
|
310
|
-
if (state.display === "redirect") {
|
|
311
|
-
if (state.redirect_uri &&
|
|
312
|
-
!state.allowedOriginsAuth.some((domain) =>
|
|
313
|
-
state.redirect_uri.startsWith(domain)
|
|
314
|
-
)
|
|
315
|
-
) {
|
|
316
|
-
return console.error("Redirect URI not allowed");
|
|
317
|
-
}
|
|
318
303
|
|
|
319
|
-
|
|
304
|
+
dispatch('loginSuccess', { ...response, isModal: data.isModal });
|
|
320
305
|
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
state.allowedOriginsAuth.
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
} else if (state.display === 'npm') {
|
|
334
|
-
EventBus.$emit('ssoEvent', {name: 'setLoading', data: true})
|
|
335
|
-
EventBus.$emit("ssoEvent", { name: "setStorage", data: state.$storex });
|
|
336
|
-
EventBus.$emit("ssoEvent", { name: "getUser", data: {username: response.data.data.username} });
|
|
306
|
+
return true;
|
|
307
|
+
}
|
|
308
|
+
},
|
|
309
|
+
loginSuccess({ commit, state, dispatch, getters }, response) {
|
|
310
|
+
if (state.display === "redirect") {
|
|
311
|
+
if (state.redirect_uri &&
|
|
312
|
+
!state.allowedOriginsAuth.some((domain) =>
|
|
313
|
+
state.redirect_uri.startsWith(domain)
|
|
314
|
+
)
|
|
315
|
+
) {
|
|
316
|
+
return console.error("Redirect URI not allowed");
|
|
317
|
+
}
|
|
337
318
|
|
|
338
|
-
|
|
339
|
-
{
|
|
340
|
-
id: response.data.data.id,
|
|
341
|
-
username: response.data.data.username,
|
|
342
|
-
name: response.data.data.name,
|
|
343
|
-
refreshToken: response.data.refreshToken,
|
|
344
|
-
photo: response.data.data.photo,
|
|
345
|
-
},
|
|
346
|
-
]);
|
|
319
|
+
return router.push('/account');
|
|
347
320
|
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
321
|
+
location.href = state.redirect_uri +
|
|
322
|
+
"?code=" +
|
|
323
|
+
response.data.auth_code +
|
|
324
|
+
"&state=" +
|
|
325
|
+
state.state;
|
|
326
|
+
} else if (state.display === "popup") {
|
|
327
|
+
state.allowedOriginsAuth.forEach((domain) => {
|
|
328
|
+
window.parent?.postMessage(
|
|
329
|
+
{ code: response.data.auth_code, state: state.state },
|
|
330
|
+
domain
|
|
331
|
+
);
|
|
332
|
+
});
|
|
333
|
+
} else if (state.display === 'npm') {
|
|
334
|
+
EventBus.$emit('ssoEvent', { name: 'setLoading', data: true })
|
|
335
|
+
EventBus.$emit("ssoEvent", { name: "setStorage", data: state.$storex });
|
|
336
|
+
EventBus.$emit("ssoEvent", { name: "getUser", data: { username: response.data.data.username } });
|
|
354
337
|
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
if (err) return dispatch('errorHandler', err);
|
|
363
|
-
return response;
|
|
364
|
-
},
|
|
365
|
-
async verify({ commit, dispatch }, data) {
|
|
366
|
-
const [err, response] = await to(AuthService.verify(data));
|
|
367
|
-
if (err) return dispatch('errorHandler', err);
|
|
368
|
-
return response;
|
|
369
|
-
},
|
|
370
|
-
async reset({ commit, state, getters, dispatch }, data) {
|
|
371
|
-
const [err, response] = await to(
|
|
372
|
-
AuthService.sendResetEmail(data)
|
|
373
|
-
);
|
|
374
|
-
if (err) return dispatch('errorHandler', err);
|
|
375
|
-
if (response.data.success) {
|
|
376
|
-
dispatch('successSnack', state.ssoLang[getters.appLanguage].password_reset_success);
|
|
377
|
-
}
|
|
378
|
-
},
|
|
379
|
-
async exchangeAuthCode({ commit, dispatch }, data) {
|
|
380
|
-
const [err, response] = await to(AuthService.exchangeAuthCode(data));
|
|
381
|
-
if (err) return dispatch('errorHandler', err);
|
|
382
|
-
await dispatch('loginSetup', response);
|
|
383
|
-
await dispatch('getLoggedInAccounts');
|
|
384
|
-
dispatch('loginSuccess', response);
|
|
385
|
-
},
|
|
386
|
-
async changePassword({ commit, dispatch }, data) {
|
|
387
|
-
const [err, response] = await to(
|
|
388
|
-
AuthService.changePassword(data)
|
|
389
|
-
);
|
|
390
|
-
if (err) return dispatch('errorHandler', err);
|
|
391
|
-
return response.data.success;
|
|
392
|
-
},
|
|
393
|
-
async newPassword({ commit, dispatch }, data) {
|
|
394
|
-
const [err, response] = await to(
|
|
395
|
-
UserService.newPassword(data)
|
|
396
|
-
);
|
|
397
|
-
if (err) return dispatch('errorHandler', err);
|
|
398
|
-
return response.data.success;
|
|
399
|
-
},
|
|
400
|
-
async deleteAccount({ commit, dispatch }, data) {
|
|
401
|
-
const [err, response] = await to(
|
|
402
|
-
UserService.deleteAccount(data)
|
|
403
|
-
);
|
|
404
|
-
if (err) return dispatch('errorHandler', err);
|
|
405
|
-
return response.data.success;
|
|
406
|
-
},
|
|
407
|
-
async registerDevice({ commit, dispatch }) {
|
|
408
|
-
const deviceID = await Device.getId();
|
|
409
|
-
const deviceInfo = await Device.getInfo();
|
|
410
|
-
let deviceData = {
|
|
411
|
-
device_id: deviceID.uuid,
|
|
412
|
-
platform: deviceInfo.platform,
|
|
413
|
-
device_info: {
|
|
414
|
-
model: deviceInfo.model,
|
|
415
|
-
manufacturer: deviceInfo.manufacturer,
|
|
416
|
-
operatingSystem: deviceInfo.operatingSystem,
|
|
417
|
-
osVersion: deviceInfo.osVersion,
|
|
418
|
-
isVirtual: deviceInfo.isVirtual,
|
|
419
|
-
webViewVersion: deviceInfo.webViewVersion,
|
|
338
|
+
dispatch('setLoggedInAccounts', [
|
|
339
|
+
{
|
|
340
|
+
id: response.data.data.id,
|
|
341
|
+
username: response.data.data.username,
|
|
342
|
+
name: response.data.data.name,
|
|
343
|
+
refreshToken: response.data.refreshToken,
|
|
344
|
+
photo: response.data.data.photo,
|
|
420
345
|
},
|
|
421
|
-
|
|
422
|
-
const [err, response] = await to(
|
|
423
|
-
DeviceService.registerDevice(deviceData)
|
|
424
|
-
);
|
|
425
|
-
if (err) return dispatch('errorHandler', err);
|
|
426
|
-
return response;
|
|
427
|
-
},
|
|
428
|
-
async addFcmToken({ commit, dispatch }, data) {
|
|
429
|
-
const [err, response] = await to(
|
|
430
|
-
DeviceService.addFcmToken(data)
|
|
431
|
-
);
|
|
432
|
-
if (err) return dispatch('errorHandler', err);
|
|
433
|
-
return response;
|
|
434
|
-
},
|
|
435
|
-
async acceptCompanyInvitation({ commit, dispatch }, code) {
|
|
436
|
-
const [err, response] = await to(
|
|
437
|
-
CompanyService.acceptCompanyInvitation(code)
|
|
438
|
-
);
|
|
439
|
-
if (err) return dispatch('errorHandler', err);
|
|
440
|
-
return response;
|
|
441
|
-
},
|
|
442
|
-
async logout({ commit, dispatch, state }, { refreshToken, sendRequest = true }) {
|
|
443
|
-
if (sendRequest && refreshToken) {
|
|
444
|
-
AuthService.logout({ token: refreshToken });
|
|
445
|
-
}
|
|
346
|
+
]);
|
|
446
347
|
|
|
447
|
-
if (
|
|
448
|
-
state
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
348
|
+
if (response.isModal) {
|
|
349
|
+
dispatch('successSnack', state.ssoLang[getters.appLanguage].success_login);
|
|
350
|
+
setTimeout(() => {
|
|
351
|
+
location.reload();
|
|
352
|
+
}, 1500);
|
|
452
353
|
}
|
|
453
|
-
commit('setLoggedInUserId', '');
|
|
454
354
|
|
|
455
|
-
|
|
355
|
+
EventBus.$emit("ssoEvent", { name: "redirect", data: "/" + response.data.data.username + "#edit" });
|
|
356
|
+
}
|
|
357
|
+
},
|
|
358
|
+
async register({ commit, dispatch }, data) {
|
|
359
|
+
const [err, response] = await to(
|
|
360
|
+
AuthService.register(data)
|
|
361
|
+
);
|
|
362
|
+
if (err) return dispatch('errorHandler', err);
|
|
363
|
+
return response;
|
|
364
|
+
},
|
|
365
|
+
async verify({ commit, dispatch }, data) {
|
|
366
|
+
const [err, response] = await to(AuthService.verify(data));
|
|
367
|
+
if (err) return dispatch('errorHandler', err);
|
|
368
|
+
return response;
|
|
369
|
+
},
|
|
370
|
+
async reset({ commit, state, getters, dispatch }, data) {
|
|
371
|
+
const [err, response] = await to(
|
|
372
|
+
AuthService.sendResetEmail(data)
|
|
373
|
+
);
|
|
374
|
+
if (err) return dispatch('errorHandler', err);
|
|
375
|
+
if (response.data.success) {
|
|
376
|
+
dispatch('successSnack', state.ssoLang[getters.appLanguage].password_reset_success);
|
|
377
|
+
}
|
|
378
|
+
},
|
|
379
|
+
async exchangeAuthCode({ commit, dispatch }, data) {
|
|
380
|
+
const [err, response] = await to(AuthService.exchangeAuthCode(data));
|
|
381
|
+
if (err) return dispatch('errorHandler', err);
|
|
382
|
+
await dispatch('loginSetup', response);
|
|
383
|
+
await dispatch('getLoggedInAccounts');
|
|
384
|
+
dispatch('loginSuccess', response);
|
|
385
|
+
},
|
|
386
|
+
async changePassword({ commit, dispatch }, data) {
|
|
387
|
+
const [err, response] = await to(
|
|
388
|
+
AuthService.changePassword(data)
|
|
389
|
+
);
|
|
390
|
+
if (err) return dispatch('errorHandler', err);
|
|
391
|
+
return response.data.success;
|
|
392
|
+
},
|
|
393
|
+
async newPassword({ commit, dispatch }, data) {
|
|
394
|
+
const [err, response] = await to(
|
|
395
|
+
UserService.newPassword(data)
|
|
396
|
+
);
|
|
397
|
+
if (err) return dispatch('errorHandler', err);
|
|
398
|
+
return response.data.success;
|
|
399
|
+
},
|
|
400
|
+
async deleteAccount({ commit, dispatch }, data) {
|
|
401
|
+
const [err, response] = await to(
|
|
402
|
+
UserService.deleteAccount(data)
|
|
403
|
+
);
|
|
404
|
+
if (err) return dispatch('errorHandler', err);
|
|
405
|
+
return response.data.success;
|
|
406
|
+
},
|
|
407
|
+
async registerDevice({ commit, dispatch }) {
|
|
408
|
+
const deviceID = await Device.getId();
|
|
409
|
+
const deviceInfo = await Device.getInfo();
|
|
410
|
+
let deviceData = {
|
|
411
|
+
device_id: deviceID.uuid,
|
|
412
|
+
platform: deviceInfo.platform,
|
|
413
|
+
device_info: {
|
|
414
|
+
model: deviceInfo.model,
|
|
415
|
+
manufacturer: deviceInfo.manufacturer,
|
|
416
|
+
operatingSystem: deviceInfo.operatingSystem,
|
|
417
|
+
osVersion: deviceInfo.osVersion,
|
|
418
|
+
isVirtual: deviceInfo.isVirtual,
|
|
419
|
+
webViewVersion: deviceInfo.webViewVersion,
|
|
420
|
+
},
|
|
421
|
+
};
|
|
422
|
+
const [err, response] = await to(
|
|
423
|
+
DeviceService.registerDevice(deviceData)
|
|
424
|
+
);
|
|
425
|
+
if (err) return dispatch('errorHandler', err);
|
|
426
|
+
return response;
|
|
427
|
+
},
|
|
428
|
+
async addFcmToken({ commit, dispatch }, data) {
|
|
429
|
+
const [err, response] = await to(
|
|
430
|
+
DeviceService.addFcmToken(data)
|
|
431
|
+
);
|
|
432
|
+
if (err) return dispatch('errorHandler', err);
|
|
433
|
+
return response;
|
|
434
|
+
},
|
|
435
|
+
async acceptCompanyInvitation({ commit, dispatch }, code) {
|
|
436
|
+
const [err, response] = await to(
|
|
437
|
+
CompanyService.acceptCompanyInvitation(code)
|
|
438
|
+
);
|
|
439
|
+
if (err) return dispatch('errorHandler', err);
|
|
440
|
+
return response;
|
|
441
|
+
},
|
|
442
|
+
async logout({ commit, dispatch, state }, { refreshToken, sendRequest = true }) {
|
|
443
|
+
if (sendRequest && refreshToken) {
|
|
444
|
+
AuthService.logout({ token: refreshToken });
|
|
445
|
+
}
|
|
456
446
|
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
async getCompanyBySSOEmail({ commit, dispatch }, data) {
|
|
481
|
-
const [err, response] = await to(
|
|
482
|
-
CompanyService.getBySSOEmail(data.email)
|
|
483
|
-
);
|
|
484
|
-
if (err) return dispatch('errorHandler', err);
|
|
485
|
-
if (response.data.success) {
|
|
486
|
-
return response.data;
|
|
487
|
-
}
|
|
488
|
-
},
|
|
489
|
-
async getLoggedInAccounts({ getters, dispatch }) {
|
|
490
|
-
if (getters.refreshTokens && getters.refreshTokens.length >= 1) {
|
|
491
|
-
const [err, response] = await to(
|
|
492
|
-
AuthService.getLoggedInAccounts({ refreshTokens: getters.refreshTokens })
|
|
493
|
-
);
|
|
494
|
-
if (err) return dispatch('errorHandler', err);
|
|
495
|
-
if (response && response.data && response.data.success) {
|
|
496
|
-
dispatch('setLoggedInAccounts', response.data.accounts);
|
|
447
|
+
if (state.$storex) {
|
|
448
|
+
state.$storex.username = '';
|
|
449
|
+
state.$storex.UserId = '';
|
|
450
|
+
state.$storex.localUser = '';
|
|
451
|
+
commit('setToken', '');
|
|
452
|
+
}
|
|
453
|
+
commit('setLoggedInUserId', '');
|
|
454
|
+
|
|
455
|
+
const remainingRefreshTokens = await dispatch('unsetRefreshToken', refreshToken);
|
|
456
|
+
|
|
457
|
+
if (remainingRefreshTokens.length >= 1) {
|
|
458
|
+
Object.keys(state.loggedInAccounts).forEach((username) => {
|
|
459
|
+
if (state.loggedInAccounts[username].refreshToken === remainingRefreshTokens[0]) {
|
|
460
|
+
commit('setStorage', {
|
|
461
|
+
username: username,
|
|
462
|
+
UserId: state.loggedInAccounts[username].id,
|
|
463
|
+
localUser: state.loggedInAccounts[username]
|
|
464
|
+
})
|
|
465
|
+
commit('setRefreshToken', remainingRefreshTokens[0]);
|
|
466
|
+
commit('setLoggedInUserId', state.loggedInAccounts[username].id);
|
|
467
|
+
dispatch('refreshTokenAction', state.loggedInAccounts[username]).then(() => {
|
|
468
|
+
EventBus.$emit("ssoEvent", { name: "switchAccount", data: { username }, });
|
|
469
|
+
});
|
|
497
470
|
}
|
|
471
|
+
});
|
|
472
|
+
} else {
|
|
473
|
+
if (state.display === "redirect") {
|
|
474
|
+
return router.push('/welcome');
|
|
475
|
+
} else if (state.display === "npm") {
|
|
476
|
+
EventBus.$emit("ssoEvent", { name: "redirect", data: "/welcome" });
|
|
498
477
|
}
|
|
499
|
-
}
|
|
500
|
-
|
|
478
|
+
}
|
|
479
|
+
},
|
|
480
|
+
async getCompanyBySSOEmail({ commit, dispatch }, data) {
|
|
481
|
+
const [err, response] = await to(
|
|
482
|
+
CompanyService.getBySSOEmail(data.email)
|
|
483
|
+
);
|
|
484
|
+
if (err) return dispatch('errorHandler', err);
|
|
485
|
+
if (response.data.success) {
|
|
486
|
+
return response.data;
|
|
487
|
+
}
|
|
488
|
+
},
|
|
489
|
+
async getLoggedInAccounts({ getters, dispatch }) {
|
|
490
|
+
if (getters.refreshTokens && getters.refreshTokens.length >= 1) {
|
|
501
491
|
const [err, response] = await to(
|
|
502
|
-
|
|
492
|
+
AuthService.getLoggedInAccounts({ refreshTokens: getters.refreshTokens })
|
|
503
493
|
);
|
|
504
494
|
if (err) return dispatch('errorHandler', err);
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
495
|
+
if (response && response.data && response.data.success) {
|
|
496
|
+
dispatch('setLoggedInAccounts', response.data.accounts);
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
},
|
|
500
|
+
async loginUsingQR({ commit, dispatch }, data) {
|
|
501
|
+
const [err, response] = await to(
|
|
502
|
+
UserService.loginUsingQR(data)
|
|
503
|
+
);
|
|
504
|
+
if (err) return dispatch('errorHandler', err);
|
|
505
|
+
return response.data.success;
|
|
506
|
+
},
|
|
507
|
+
setLoggedInAccounts({ commit }, accounts) {
|
|
508
|
+
commit('setLoggedInAccounts', accounts);
|
|
509
|
+
EventBus.$emit("ssoEvent", { name: "setLoggedInAccounts", data: accounts });
|
|
510
|
+
},
|
|
511
|
+
setLoggedInUserId({ commit }, id) {
|
|
512
|
+
commit('setLoggedInUserId', id);
|
|
513
|
+
},
|
|
514
|
+
setRefreshToken({ commit }, token) {
|
|
515
|
+
commit('setRefreshToken', token);
|
|
516
|
+
},
|
|
517
|
+
async unsetRefreshToken({ commit, state, dispatch, getters }, refreshToken) {
|
|
518
|
+
let refreshTokens = getters.refreshTokens;
|
|
519
519
|
|
|
520
|
-
|
|
521
|
-
|
|
520
|
+
// Remove the specified refresh token from the list
|
|
521
|
+
refreshTokens = refreshTokens?.filter((t) => t !== refreshToken);
|
|
522
522
|
|
|
523
|
-
|
|
524
|
-
|
|
523
|
+
// Update the refresh tokens in the state
|
|
524
|
+
commit('setRefreshTokens', refreshTokens.join(","));
|
|
525
525
|
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
526
|
+
return refreshTokens;
|
|
527
|
+
},
|
|
528
|
+
setToken({ commit }, token) {
|
|
529
|
+
commit('setToken', token);
|
|
530
|
+
},
|
|
531
|
+
updateLang({ commit }, lang) {
|
|
532
|
+
commit('updateLang', lang);
|
|
533
|
+
},
|
|
534
|
+
setView({ commit }, view) {
|
|
535
|
+
commit('setView', view);
|
|
536
|
+
},
|
|
537
|
+
setRedirectUri({ commit }, uri) {
|
|
538
|
+
commit('setRedirectUri', uri);
|
|
539
|
+
},
|
|
540
|
+
setDisplay({ commit }, display) {
|
|
541
|
+
commit('setDisplay', display);
|
|
542
|
+
},
|
|
543
|
+
setState({ commit }, stateValue) {
|
|
544
|
+
commit('setState', stateValue);
|
|
545
|
+
},
|
|
546
|
+
setResponseType({ commit }, responseType) {
|
|
547
|
+
commit('setResponseType', responseType);
|
|
548
|
+
},
|
|
549
|
+
setRealm({ commit }, realm) {
|
|
550
|
+
commit('setRealm', realm);
|
|
551
|
+
},
|
|
552
552
|
},
|
|
553
553
|
getters: {
|
|
554
554
|
isLoggedIn: state => {
|
|
@@ -556,7 +556,7 @@ export default {
|
|
|
556
556
|
},
|
|
557
557
|
renderView: (state, getters, rootState) => {
|
|
558
558
|
if (state.display !== "npm") {
|
|
559
|
-
|
|
559
|
+
return rootState.route?.name;
|
|
560
560
|
} else return state.view;
|
|
561
561
|
},
|
|
562
562
|
appRealm: state => {
|
|
@@ -572,7 +572,7 @@ export default {
|
|
|
572
572
|
return state.$storex.refreshTokens.split(',')
|
|
573
573
|
},
|
|
574
574
|
apiRoot: state => {
|
|
575
|
-
|
|
575
|
+
return state.apiRoot;
|
|
576
576
|
}
|
|
577
577
|
}
|
|
578
578
|
};
|