@tapni/auth 1.0.5 → 1.0.6-3.dev
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/README.md +2 -0
- package/dist/.vite/manifest.json +16 -43
- package/dist/.well-known/assetlinks.json +10 -12
- package/dist/.well-known/microsoft-identity-association.json +5 -5
- package/dist/{Apps-DMds3Dv-.js → Apps-XNA4_3B4.js} +34 -34
- package/dist/Billing-Br0-fHed.js +256 -0
- package/dist/CustomApp-CrlbYDOm.js +83 -0
- package/dist/QR-Bvqb60-E.js +41 -0
- package/dist/TapniAuth.es.js +1 -1
- package/dist/TapniAuth.umd.js +49 -23
- package/dist/{install-L-cxSovH.js → install-7FOVy8Ol.js} +6267 -4743
- package/dist/site.webmanifest +11 -1
- package/dist/style.css +1 -1
- package/dist/{web-IFGkBi0t.js → web-UrTMimK1.js} +2 -2
- package/package.json +65 -55
- package/src/.prettierrc.json +16 -0
- package/src/App.vue +326 -269
- package/src/eslint.config.js +15 -0
- package/src/index.js +4 -0
- package/src/install.js +9 -10
- package/src/main.js +54 -57
- package/src/mixins/apple.mixin.js +56 -54
- package/src/mixins/auth.mixin.js +3 -2
- package/src/mixins/global.mixin.js +3 -3
- package/src/mixins/google.mixin.js +53 -54
- package/src/mixins/microsoft.mixin.js +2 -5
- package/src/mixins/okta.mixin.js +1 -1
- package/src/mixins/qr-auth.mixin.js +111 -107
- package/src/mixins/saml.mixin.js +82 -45
- package/src/router/index.js +6 -6
- package/src/routes.js +1 -1
- package/src/services/Api.js +56 -58
- package/src/services/AuthService.js +7 -9
- package/src/services/CompanyService.js +10 -10
- package/src/services/DeviceService.js +3 -3
- package/src/services/UserService.js +48 -45
- package/src/services/UtilService.js +317 -225
- package/src/store/auth.js +485 -549
- package/src/store/constants.js +2 -2
- package/src/store/event-bus.js +22 -22
- package/src/store/locales/cn.js +476 -458
- package/src/store/locales/de.js +478 -517
- package/src/store/locales/en.js +454 -513
- package/src/store/locales/es.js +477 -524
- package/src/store/locales/fr.js +477 -516
- package/src/store/locales/it.js +477 -514
- package/src/store/locales/ja.js +488 -0
- package/src/store/locales/kr.js +477 -491
- package/src/store/locales/lang.js +51 -43
- package/src/store/locales/pt.js +488 -0
- package/src/store/locales/sr.js +477 -492
- package/src/store/locales/tr.js +477 -487
- package/src/store/store.js +6 -6
- package/src/views/Account.vue +36 -8
- package/src/views/Billing.vue +464 -34
- package/src/views/Callback.vue +36 -33
- package/src/views/General.vue +151 -185
- package/src/views/Login.vue +2 -25
- package/src/views/Register.vue +2 -12
- package/src/views/Reset.vue +132 -135
- package/src/views/Security.vue +13 -7
- package/src/views/Verify.vue +153 -151
- package/src/views/Welcome.vue +85 -71
- package/dist/Account-Cuz87g_8.js +0 -153
- package/dist/Billing-BXlQEuNy.js +0 -113
- package/dist/CustomApp-CLCMXmMO.js +0 -83
- package/dist/General-dW73bMoR.js +0 -479
- package/dist/QR-D6ZGcPM0.js +0 -41
- package/dist/index.css +0 -193
- package/dist/web-AXRKjAOB.js +0 -92
- package/src/components/DELETE_Language.vue +0 -168
- package/src/components/DELETE_LinkIcon.vue +0 -288
- 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 -166
- package/src/mixins/DELETE_mfa-auth.mixin.js +0 -53
- package/src/mixins/facebook.mixin.js +0 -78
package/src/store/auth.js
CHANGED
|
@@ -1,574 +1,510 @@
|
|
|
1
|
-
import to from
|
|
2
|
-
import UserService from
|
|
3
|
-
import DeviceService from
|
|
4
|
-
import AuthService from
|
|
5
|
-
import CompanyService from
|
|
6
|
-
import { Device } from
|
|
7
|
-
import axios from
|
|
8
|
-
import en from
|
|
9
|
-
import de from
|
|
10
|
-
import es from
|
|
11
|
-
import fr from
|
|
12
|
-
import it from
|
|
13
|
-
import sr from
|
|
14
|
-
import tr from
|
|
15
|
-
import cn from
|
|
16
|
-
import kr from
|
|
17
|
-
import
|
|
1
|
+
import to from 'await-to-js';
|
|
2
|
+
import UserService from '../services/UserService';
|
|
3
|
+
import DeviceService from '../services/DeviceService';
|
|
4
|
+
import AuthService from '../services/AuthService';
|
|
5
|
+
import CompanyService from '../services/CompanyService';
|
|
6
|
+
import { Device } from '@capacitor/device';
|
|
7
|
+
import axios from 'axios';
|
|
8
|
+
import en from '../store/locales/en.js';
|
|
9
|
+
import de from '../store/locales/de.js';
|
|
10
|
+
import es from '../store/locales/es.js';
|
|
11
|
+
import fr from '../store/locales/fr.js';
|
|
12
|
+
import it from '../store/locales/it.js';
|
|
13
|
+
import sr from '../store/locales/sr.js';
|
|
14
|
+
import tr from '../store/locales/tr.js';
|
|
15
|
+
import cn from '../store/locales/cn.js';
|
|
16
|
+
import kr from '../store/locales/kr.js';
|
|
17
|
+
import ja from '../store/locales/ja.js';
|
|
18
|
+
import pt from '../store/locales/pt.js';
|
|
19
|
+
import { EventBus } from '@/store/event-bus.js';
|
|
18
20
|
import router from '../router/index.js';
|
|
19
21
|
export default {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
},
|
|
130
|
-
},
|
|
131
|
-
actions: {
|
|
132
|
-
async getAccountSettings({ state, commit, dispatch }) {
|
|
133
|
-
const [err, response] = await to(
|
|
134
|
-
AuthService.getAccountSettings()
|
|
135
|
-
);
|
|
136
|
-
if (err) return dispatch('errorHandler', err);
|
|
137
|
-
if (response.data.success) {
|
|
138
|
-
commit('setAccountSettings', response.data.data);
|
|
139
|
-
}
|
|
140
|
-
},
|
|
141
|
-
setStorageItem({ commit }, item) {
|
|
142
|
-
commit('setStorageItem', item);
|
|
143
|
-
},
|
|
144
|
-
setStorage({ commit }, storage) {
|
|
145
|
-
commit('setStorage', storage);
|
|
146
|
-
},
|
|
147
|
-
errorHandler({ dispatch }, error) {
|
|
148
|
-
if (
|
|
149
|
-
error &&
|
|
150
|
-
error.response &&
|
|
151
|
-
error.response.data &&
|
|
152
|
-
error.response.data.error
|
|
153
|
-
) {
|
|
154
|
-
if (error.response.data.error === "ACCESS_DENIED") {
|
|
155
|
-
return dispatch('logout');
|
|
156
|
-
}
|
|
22
|
+
namespaced: true,
|
|
23
|
+
state: {
|
|
24
|
+
$storex: {},
|
|
25
|
+
view: '',
|
|
26
|
+
lang: 'en',
|
|
27
|
+
realm: 'app',
|
|
28
|
+
refreshing: false,
|
|
29
|
+
loggedInUserId: '',
|
|
30
|
+
apiRoot: '',
|
|
31
|
+
account: {},
|
|
32
|
+
device: {},
|
|
33
|
+
loggedInAccounts: {},
|
|
34
|
+
ssoLang: {
|
|
35
|
+
en: en.state,
|
|
36
|
+
de: de.state,
|
|
37
|
+
es: es.state,
|
|
38
|
+
fr: fr.state,
|
|
39
|
+
it: it.state,
|
|
40
|
+
sr: sr.state,
|
|
41
|
+
tr: tr.state,
|
|
42
|
+
cn: cn.state,
|
|
43
|
+
kr: kr.state,
|
|
44
|
+
pt: pt.state,
|
|
45
|
+
ja: ja.state
|
|
46
|
+
},
|
|
47
|
+
display: import.meta.env.VITE_APP_MODE,
|
|
48
|
+
redirect_uri: import.meta.env.VITE_APP_APP_ROOT + '/app/callback/auth',
|
|
49
|
+
response_type: 'token',
|
|
50
|
+
state: '',
|
|
51
|
+
allowedOriginsAuth: ['https://business.tapni.com', 'https://business-dev.tapni.com', 'https://tapni.com', 'https://tapni.co', 'https://t.link', 'https://my.tapni.com', 'https://my.tapni.co', 'https://dev.tapni.co', 'https://dev.tapni.com', 'https://auth.tapni.com', 'https://auth.tapni.co', 'https://dev.mailsign.link', 'https://mailsign.link', 'https://sign.tapni.com', 'https://qrcodetoolkit.com', 'https://qr.tapni.com', 'https://designer.tapni.com', 'https://designer-dev.tapni.com', 'http://localhost:8080', 'https://localhost:8080', 'http://localhost:8081', 'http://localhost:7777', 'https://localhost:7777', 'http://localhost:8086', 'https://localhost:8085', 'http://localhost:8085', 'http://localhost', 'https://localhost', 'https://bigeye.tapni.com', 'https://bigeye-dev.tapni.com']
|
|
52
|
+
},
|
|
53
|
+
mutations: {
|
|
54
|
+
setAccountSettings(state, account) {
|
|
55
|
+
state.account = account;
|
|
56
|
+
},
|
|
57
|
+
setStorageItem(state, item) {
|
|
58
|
+
state.$storex[item.name] = item.data;
|
|
59
|
+
},
|
|
60
|
+
setStorage(state, storage) {
|
|
61
|
+
state.$storex = {
|
|
62
|
+
...state.$storex,
|
|
63
|
+
...storage
|
|
64
|
+
};
|
|
65
|
+
},
|
|
66
|
+
setLoggedInAccounts(state, accounts) {
|
|
67
|
+
state.loggedInAccounts = {};
|
|
68
|
+
accounts.forEach((account) => {
|
|
69
|
+
state.loggedInAccounts[account.username] = account;
|
|
70
|
+
});
|
|
71
|
+
},
|
|
72
|
+
setLoggedInUserId(state, id) {
|
|
73
|
+
state.loggedInUserId = id;
|
|
74
|
+
},
|
|
75
|
+
setRefreshTokens(state, refreshTokens) {
|
|
76
|
+
state.$storex.refreshTokens = refreshTokens;
|
|
77
|
+
},
|
|
78
|
+
setRefreshToken(state, token) {
|
|
79
|
+
if (!token) return;
|
|
80
|
+
let refreshTokens = state.$storex.refreshTokens ? state.$storex.refreshTokens.split(',') : [];
|
|
81
|
+
refreshTokens = [token, ...refreshTokens.filter((t) => t !== token)];
|
|
82
|
+
state.$storex.refreshTokens = refreshTokens.join(',');
|
|
83
|
+
},
|
|
84
|
+
setToken(state, token) {
|
|
85
|
+
state.$storex.token = token;
|
|
86
|
+
},
|
|
87
|
+
updateLang(state, lang) {
|
|
88
|
+
state.lang = lang;
|
|
89
|
+
},
|
|
90
|
+
setView(state, view) {
|
|
91
|
+
state.view = view;
|
|
92
|
+
},
|
|
93
|
+
setRedirectUri(state, uri) {
|
|
94
|
+
state.redirect_uri = uri;
|
|
95
|
+
},
|
|
96
|
+
setDisplay(state, display) {
|
|
97
|
+
state.display = display;
|
|
98
|
+
},
|
|
99
|
+
setState(state, stateValue) {
|
|
100
|
+
state.state = stateValue;
|
|
101
|
+
},
|
|
102
|
+
setResponseType(state, responseType) {
|
|
103
|
+
state.response_type = responseType;
|
|
104
|
+
},
|
|
105
|
+
setRealm(state, realm) {
|
|
106
|
+
state.realm = realm;
|
|
107
|
+
},
|
|
108
|
+
setApiRoot(state, apiRoot) {
|
|
109
|
+
state.apiRoot = apiRoot;
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
actions: {
|
|
113
|
+
async getAccountSettings({ state, commit, dispatch }) {
|
|
114
|
+
const [err, response] = await to(AuthService.getAccountSettings());
|
|
115
|
+
if (err) return dispatch('errorHandler', err);
|
|
116
|
+
if (response.data.success) {
|
|
117
|
+
commit('setAccountSettings', response.data.data);
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
setStorageItem({ commit }, item) {
|
|
121
|
+
commit('setStorageItem', item);
|
|
122
|
+
},
|
|
123
|
+
setStorage({ commit }, storage) {
|
|
124
|
+
commit('setStorage', storage);
|
|
125
|
+
},
|
|
126
|
+
errorHandler({ dispatch }, error) {
|
|
127
|
+
if (error && error.response && error.response.data && error.response.data.error) {
|
|
128
|
+
if (error.response.data.error === 'ACCESS_DENIED') {
|
|
129
|
+
return dispatch('logout');
|
|
130
|
+
}
|
|
157
131
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
132
|
+
if (error.response.data.error === 'OTP_REQUIRED') {
|
|
133
|
+
return EventBus.$emit('toggleOTPField', true);
|
|
134
|
+
}
|
|
161
135
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
axios.get("https://status.tapni.co/data/maintenance.json")
|
|
212
|
-
);
|
|
213
|
-
if (err) return console.error(err);
|
|
214
|
-
if (response) {
|
|
215
|
-
let maintenanceState = response.data;
|
|
216
|
-
if (typeof response.data === "string") {
|
|
217
|
-
maintenanceState = JSON.parse(response.data);
|
|
218
|
-
}
|
|
136
|
+
// Link click network error bug fix
|
|
137
|
+
if (!error.response.data.error.includes('Network Error') && !error.response.data.error.includes('TOKEN_EXPIRED') && !error.response.data.error.includes('Cannot read properties')) {
|
|
138
|
+
dispatch('errorSnack', error.response.data.error);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return error;
|
|
142
|
+
},
|
|
143
|
+
errorSnack({ commit }, message) {
|
|
144
|
+
let snackbar = document.getElementById('snackbar');
|
|
145
|
+
let errMessage = document.getElementById('errorMessage');
|
|
146
|
+
let errorSnack = document.getElementById('errorSnack');
|
|
147
|
+
errMessage.innerHTML = message;
|
|
148
|
+
snackbar.classList.add('show-snack');
|
|
149
|
+
errorSnack.classList.add('active-snack');
|
|
150
|
+
setTimeout(function () {
|
|
151
|
+
errorSnack.classList.remove('active-snack');
|
|
152
|
+
snackbar.classList.remove('show-snack');
|
|
153
|
+
}, 3000);
|
|
154
|
+
},
|
|
155
|
+
successSnack({ commit }, message) {
|
|
156
|
+
let snackbar = document.getElementById('snackbar');
|
|
157
|
+
let successMessage = document.getElementById('successMessage');
|
|
158
|
+
let successSnack = document.getElementById('successSnack');
|
|
159
|
+
successMessage.innerHTML = message;
|
|
160
|
+
snackbar.classList.add('show-snack');
|
|
161
|
+
successSnack.classList.add('active-snack');
|
|
162
|
+
setTimeout(function () {
|
|
163
|
+
successSnack.classList.remove('active-snack');
|
|
164
|
+
snackbar.classList.remove('show-snack');
|
|
165
|
+
}, 3000);
|
|
166
|
+
},
|
|
167
|
+
closeSnacks({ commit }) {
|
|
168
|
+
document.getElementById('snackbar').classList.remove('show-snack');
|
|
169
|
+
document.getElementById('successSnack').classList.remove('active-snack');
|
|
170
|
+
document.getElementById('errorSnack').classList.remove('active-snack');
|
|
171
|
+
},
|
|
172
|
+
async eventLog({ commit, dispatch }, data) {
|
|
173
|
+
const [err, response] = await to(UserService.eventLog(data));
|
|
174
|
+
if (err) return dispatch('errorHandler', err);
|
|
175
|
+
return response;
|
|
176
|
+
},
|
|
177
|
+
async maintenance({ commit }) {
|
|
178
|
+
const [err, response] = await to(axios.get('https://status.tapni.co/data/maintenance.json'));
|
|
179
|
+
if (err) return console.error(err);
|
|
180
|
+
if (response) {
|
|
181
|
+
let maintenanceState = response.data;
|
|
182
|
+
if (typeof response.data === 'string') {
|
|
183
|
+
maintenanceState = JSON.parse(response.data);
|
|
184
|
+
}
|
|
219
185
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
if (response.data.refreshToken) commit('setRefreshToken', response.data.refreshToken);
|
|
186
|
+
if (maintenanceState.api && maintenanceState.api.maintenanceActive) {
|
|
187
|
+
location.href = 'https://t.link/maintenance?msg=' + maintenanceState.api.msg;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
async loginSetup({ commit, dispatch }, response) {
|
|
192
|
+
// Save Refresh Token
|
|
193
|
+
if (response.data.refreshToken) commit('setRefreshToken', response.data.refreshToken);
|
|
229
194
|
|
|
230
|
-
|
|
231
|
-
|
|
195
|
+
// Save Access Token
|
|
196
|
+
if (response.data.token) commit('setToken', response.data.token);
|
|
232
197
|
|
|
233
|
-
|
|
198
|
+
commit('setLoggedInUserId', response.data.data.id);
|
|
234
199
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
200
|
+
commit('setStorage', {
|
|
201
|
+
UserId: response.data.data.id,
|
|
202
|
+
username: response.data.data.username,
|
|
203
|
+
localUser: response.data.data
|
|
204
|
+
});
|
|
240
205
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
206
|
+
if (response.isModal === true) {
|
|
207
|
+
dispatch('setLoggedInAccounts', [
|
|
208
|
+
{
|
|
209
|
+
id: response.data.data.id,
|
|
210
|
+
username: response.data.data.username,
|
|
211
|
+
name: response.data.data.name,
|
|
212
|
+
refreshToken: response.data.refreshToken,
|
|
213
|
+
photo: response.data.data.photo
|
|
214
|
+
}
|
|
215
|
+
]);
|
|
216
|
+
}
|
|
217
|
+
},
|
|
218
|
+
async switchAccount({ commit, dispatch, state }, username) {
|
|
219
|
+
if (state.loggedInAccounts[username]) {
|
|
220
|
+
commit('setStorage', {
|
|
221
|
+
username: username,
|
|
222
|
+
UserId: state.loggedInAccounts[username].id,
|
|
223
|
+
localUser: state.loggedInAccounts[username]
|
|
224
|
+
});
|
|
225
|
+
commit('setLoggedInUserId', state.loggedInAccounts[username].id);
|
|
226
|
+
commit('setRefreshToken', state.loggedInAccounts[username].refreshToken);
|
|
227
|
+
await dispatch('refreshTokenAction', state.loggedInAccounts[username]);
|
|
228
|
+
}
|
|
229
|
+
EventBus.$emit('ssoEvent', { name: 'switchAccount', data: { username } });
|
|
230
|
+
},
|
|
231
|
+
async refreshTokenAction({ dispatch, commit, state, getters }, data) {
|
|
232
|
+
if (state.refreshing) {
|
|
233
|
+
return null;
|
|
234
|
+
}
|
|
270
235
|
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
return location.reload();
|
|
282
|
-
}
|
|
236
|
+
state.refreshing = true;
|
|
237
|
+
const [err, response] = await to(
|
|
238
|
+
AuthService.refreshToken({
|
|
239
|
+
id: data.id,
|
|
240
|
+
refreshToken: getters.refreshTokens[0],
|
|
241
|
+
refreshTokenAction: true
|
|
242
|
+
})
|
|
243
|
+
);
|
|
244
|
+
if (err && err.response && err.response.data.error === 'ACCESS_DENIED') {
|
|
245
|
+
dispatch('logout', { refreshToken: getters.refreshTokens[0] });
|
|
283
246
|
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
}
|
|
289
|
-
state.refreshing = false;
|
|
290
|
-
},
|
|
291
|
-
async login({ commit, state, dispatch }, data) {
|
|
292
|
-
const [err, response] = await to(AuthService.login(data));
|
|
293
|
-
if (err) return dispatch('errorHandler', err);
|
|
294
|
-
if (response.data.success) {
|
|
295
|
-
if (state.display !== 'popup') {
|
|
296
|
-
dispatch('loginSetup', { ...response, isModal: data.isModal });
|
|
297
|
-
await dispatch('getLoggedInAccounts');
|
|
298
|
-
}
|
|
247
|
+
setTimeout(() => {
|
|
248
|
+
return location.reload();
|
|
249
|
+
}, 1500);
|
|
250
|
+
}
|
|
299
251
|
|
|
300
|
-
|
|
252
|
+
// Set new access token
|
|
253
|
+
if (response && response.data) {
|
|
254
|
+
commit('setToken', response.data.token);
|
|
255
|
+
EventBus.$emit('ssoEvent', { name: 'setStorage', data: state.$storex });
|
|
256
|
+
}
|
|
257
|
+
state.refreshing = false;
|
|
258
|
+
},
|
|
259
|
+
async login({ commit, state, dispatch }, data) {
|
|
260
|
+
const [err, response] = await to(AuthService.login(data));
|
|
301
261
|
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
!state.allowedOriginsAuth.some((domain) =>
|
|
309
|
-
state.redirect_uri.startsWith(domain)
|
|
310
|
-
)
|
|
311
|
-
) {
|
|
312
|
-
return console.error("Redirect URI not allowed");
|
|
313
|
-
}
|
|
262
|
+
if (err) return dispatch('errorHandler', err);
|
|
263
|
+
if (response.data.success) {
|
|
264
|
+
if (state.display !== 'popup') {
|
|
265
|
+
dispatch('loginSetup', { ...response, isModal: data.isModal });
|
|
266
|
+
await dispatch('getLoggedInAccounts');
|
|
267
|
+
}
|
|
314
268
|
|
|
315
|
-
|
|
269
|
+
dispatch('loginSuccess', { ...response, isModal: data.isModal });
|
|
316
270
|
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
{ code: response.data.auth_code, state: state.state },
|
|
326
|
-
domain
|
|
327
|
-
);
|
|
328
|
-
});
|
|
329
|
-
} else if (state.display === 'npm') {
|
|
330
|
-
EventBus.$emit('ssoEvent', {name: 'setLoading', data: true})
|
|
331
|
-
EventBus.$emit("ssoEvent", { name: "setStorage", data: state.$storex });
|
|
332
|
-
EventBus.$emit("ssoEvent", { name: "getUser", data: {username: response.data.data.username} });
|
|
271
|
+
return true;
|
|
272
|
+
}
|
|
273
|
+
},
|
|
274
|
+
loginSuccess({ commit, state, dispatch, getters }, response) {
|
|
275
|
+
if (state.display === 'redirect') {
|
|
276
|
+
if (state.redirect_uri && !state.allowedOriginsAuth.some((domain) => state.redirect_uri.startsWith(domain))) {
|
|
277
|
+
return console.error('Redirect URI not allowed');
|
|
278
|
+
}
|
|
333
279
|
|
|
334
|
-
|
|
335
|
-
{
|
|
336
|
-
id: response.data.data.id,
|
|
337
|
-
username: response.data.data.username,
|
|
338
|
-
name: response.data.data.name,
|
|
339
|
-
refreshToken: response.data.refreshToken,
|
|
340
|
-
photo: response.data.data.photo,
|
|
341
|
-
},
|
|
342
|
-
]);
|
|
280
|
+
return router.push('/account');
|
|
343
281
|
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
282
|
+
location.href = state.redirect_uri + '?code=' + response.data.auth_code + '&state=' + state.state;
|
|
283
|
+
} else if (state.display === 'popup') {
|
|
284
|
+
state.allowedOriginsAuth.forEach((domain) => {
|
|
285
|
+
window.parent?.postMessage({ code: response.data.auth_code, state: state.state }, domain);
|
|
286
|
+
});
|
|
287
|
+
} else if (state.display === 'npm') {
|
|
288
|
+
EventBus.$emit('ssoEvent', { name: 'setLoading', data: true });
|
|
289
|
+
EventBus.$emit('ssoEvent', { name: 'setStorage', data: state.$storex });
|
|
290
|
+
EventBus.$emit('ssoEvent', { name: 'getUser', data: { username: response.data.data.username } });
|
|
350
291
|
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
},
|
|
361
|
-
async verify({ commit, dispatch }, data) {
|
|
362
|
-
const [err, response] = await to(AuthService.verify(data));
|
|
363
|
-
if (err) return dispatch('errorHandler', err);
|
|
364
|
-
return response;
|
|
365
|
-
},
|
|
366
|
-
async reset({ commit, state, getters, dispatch }, data) {
|
|
367
|
-
const [err, response] = await to(
|
|
368
|
-
AuthService.sendResetEmail(data)
|
|
369
|
-
);
|
|
370
|
-
if (err) return dispatch('errorHandler', err);
|
|
371
|
-
if (response.data.success) {
|
|
372
|
-
dispatch('successSnack', state.ssoLang[getters.appLanguage].password_reset_success);
|
|
373
|
-
}
|
|
374
|
-
},
|
|
375
|
-
async exchangeAuthCode({ commit, dispatch }, data) {
|
|
376
|
-
const [err, response] = await to(AuthService.exchangeAuthCode(data));
|
|
377
|
-
if (err) return dispatch('errorHandler', err);
|
|
378
|
-
await dispatch('loginSetup', response);
|
|
379
|
-
await dispatch('getLoggedInAccounts');
|
|
380
|
-
dispatch('loginSuccess', response);
|
|
381
|
-
},
|
|
382
|
-
async changePassword({ commit, dispatch }, data) {
|
|
383
|
-
const [err, response] = await to(
|
|
384
|
-
AuthService.changePassword(data)
|
|
385
|
-
);
|
|
386
|
-
if (err) return dispatch('errorHandler', err);
|
|
387
|
-
return response.data.success;
|
|
388
|
-
},
|
|
389
|
-
async newPassword({ commit, dispatch }, data) {
|
|
390
|
-
const [err, response] = await to(
|
|
391
|
-
UserService.newPassword(data)
|
|
392
|
-
);
|
|
393
|
-
if (err) return dispatch('errorHandler', err);
|
|
394
|
-
return response.data.success;
|
|
395
|
-
},
|
|
396
|
-
async deleteAccount({ commit, dispatch }, data) {
|
|
397
|
-
const [err, response] = await to(
|
|
398
|
-
UserService.deleteAccount(data)
|
|
399
|
-
);
|
|
400
|
-
if (err) return dispatch('errorHandler', err);
|
|
401
|
-
return response.data.success;
|
|
402
|
-
},
|
|
403
|
-
async registerDevice({ commit, dispatch }) {
|
|
404
|
-
const deviceID = await Device.getId();
|
|
405
|
-
const deviceInfo = await Device.getInfo();
|
|
406
|
-
let deviceData = {
|
|
407
|
-
device_id: deviceID.uuid,
|
|
408
|
-
platform: deviceInfo.platform,
|
|
409
|
-
device_info: {
|
|
410
|
-
model: deviceInfo.model,
|
|
411
|
-
manufacturer: deviceInfo.manufacturer,
|
|
412
|
-
operatingSystem: deviceInfo.operatingSystem,
|
|
413
|
-
osVersion: deviceInfo.osVersion,
|
|
414
|
-
isVirtual: deviceInfo.isVirtual,
|
|
415
|
-
webViewVersion: deviceInfo.webViewVersion,
|
|
416
|
-
},
|
|
417
|
-
};
|
|
418
|
-
const [err, response] = await to(
|
|
419
|
-
DeviceService.registerDevice(deviceData)
|
|
420
|
-
);
|
|
421
|
-
if (err) return dispatch('errorHandler', err);
|
|
422
|
-
return response;
|
|
423
|
-
},
|
|
424
|
-
async addFcmToken({ commit, dispatch }, data) {
|
|
425
|
-
const [err, response] = await to(
|
|
426
|
-
DeviceService.addFcmToken(data)
|
|
427
|
-
);
|
|
428
|
-
if (err) return dispatch('errorHandler', err);
|
|
429
|
-
return response;
|
|
430
|
-
},
|
|
431
|
-
async acceptCompanyInvitation({ commit, dispatch }, code) {
|
|
432
|
-
const [err, response] = await to(
|
|
433
|
-
CompanyService.acceptCompanyInvitation(code)
|
|
434
|
-
);
|
|
435
|
-
if (err) return dispatch('errorHandler', err);
|
|
436
|
-
return response;
|
|
437
|
-
},
|
|
438
|
-
async logout({ commit, dispatch, state }, { refreshToken, sendRequest = true }) {
|
|
439
|
-
if (sendRequest && refreshToken) {
|
|
440
|
-
AuthService.logout({ token: refreshToken });
|
|
441
|
-
}
|
|
292
|
+
dispatch('setLoggedInAccounts', [
|
|
293
|
+
{
|
|
294
|
+
id: response.data.data.id,
|
|
295
|
+
username: response.data.data.username,
|
|
296
|
+
name: response.data.data.name,
|
|
297
|
+
refreshToken: response.data.refreshToken,
|
|
298
|
+
photo: response.data.data.photo
|
|
299
|
+
}
|
|
300
|
+
]);
|
|
442
301
|
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
commit('setLoggedInUserId', '');
|
|
302
|
+
if (response.isModal) {
|
|
303
|
+
dispatch('successSnack', state.ssoLang[getters.appLanguage].success_login);
|
|
304
|
+
setTimeout(() => {
|
|
305
|
+
location.reload();
|
|
306
|
+
}, 1500);
|
|
307
|
+
}
|
|
450
308
|
|
|
451
|
-
|
|
309
|
+
EventBus.$emit('ssoEvent', { name: 'redirect', data: '/' + response.data.data.username + '#edit' });
|
|
310
|
+
}
|
|
311
|
+
},
|
|
312
|
+
async register({ commit, dispatch }, data) {
|
|
313
|
+
const [err, response] = await to(AuthService.register(data));
|
|
314
|
+
if (err) return dispatch('errorHandler', err);
|
|
315
|
+
return response;
|
|
316
|
+
},
|
|
317
|
+
async verify({ commit, dispatch }, data) {
|
|
318
|
+
const [err, response] = await to(AuthService.verify(data));
|
|
319
|
+
if (err) return dispatch('errorHandler', err);
|
|
320
|
+
return response;
|
|
321
|
+
},
|
|
322
|
+
async reset({ commit, state, getters, dispatch }, data) {
|
|
323
|
+
const [err, response] = await to(AuthService.sendResetEmail(data));
|
|
324
|
+
if (err) return dispatch('errorHandler', err);
|
|
325
|
+
if (response.data.success) {
|
|
326
|
+
dispatch('successSnack', state.ssoLang[getters.appLanguage].password_reset_success);
|
|
327
|
+
}
|
|
328
|
+
},
|
|
329
|
+
async exchangeAuthCode({ commit, dispatch }, data) {
|
|
330
|
+
const [err, response] = await to(AuthService.exchangeAuthCode(data));
|
|
331
|
+
if (err) return dispatch('errorHandler', err);
|
|
332
|
+
await dispatch('loginSetup', response);
|
|
333
|
+
await dispatch('getLoggedInAccounts');
|
|
334
|
+
dispatch('loginSuccess', response);
|
|
335
|
+
},
|
|
336
|
+
async changePassword({ commit, dispatch }, data) {
|
|
337
|
+
const [err, response] = await to(AuthService.changePassword(data));
|
|
338
|
+
if (err) return dispatch('errorHandler', err);
|
|
339
|
+
return response.data.success;
|
|
340
|
+
},
|
|
341
|
+
async newPassword({ commit, dispatch }, data) {
|
|
342
|
+
const [err, response] = await to(UserService.newPassword(data));
|
|
343
|
+
if (err) return dispatch('errorHandler', err);
|
|
344
|
+
return response.data.success;
|
|
345
|
+
},
|
|
346
|
+
async deleteAccount({ commit, dispatch }, data) {
|
|
347
|
+
const [err, response] = await to(UserService.deleteAccount(data));
|
|
348
|
+
if (err) return dispatch('errorHandler', err);
|
|
349
|
+
return response.data.success;
|
|
350
|
+
},
|
|
351
|
+
async registerDevice({ commit, dispatch }) {
|
|
352
|
+
const deviceID = await Device.getId();
|
|
353
|
+
const deviceInfo = await Device.getInfo();
|
|
354
|
+
let deviceData = {
|
|
355
|
+
device_id: deviceID.uuid,
|
|
356
|
+
platform: deviceInfo.platform,
|
|
357
|
+
device_info: {
|
|
358
|
+
model: deviceInfo.model,
|
|
359
|
+
manufacturer: deviceInfo.manufacturer,
|
|
360
|
+
operatingSystem: deviceInfo.operatingSystem,
|
|
361
|
+
osVersion: deviceInfo.osVersion,
|
|
362
|
+
isVirtual: deviceInfo.isVirtual,
|
|
363
|
+
webViewVersion: deviceInfo.webViewVersion
|
|
364
|
+
}
|
|
365
|
+
};
|
|
366
|
+
const [err, response] = await to(DeviceService.registerDevice(deviceData));
|
|
367
|
+
if (err) return dispatch('errorHandler', err);
|
|
368
|
+
return response;
|
|
369
|
+
},
|
|
370
|
+
async addFcmToken({ commit, dispatch }, data) {
|
|
371
|
+
const [err, response] = await to(DeviceService.addFcmToken(data));
|
|
372
|
+
if (err) return dispatch('errorHandler', err);
|
|
373
|
+
return response;
|
|
374
|
+
},
|
|
375
|
+
async acceptCompanyInvitation({ commit, dispatch }, code) {
|
|
376
|
+
const [err, response] = await to(CompanyService.acceptCompanyInvitation(code));
|
|
377
|
+
if (err) return dispatch('errorHandler', err);
|
|
378
|
+
return response;
|
|
379
|
+
},
|
|
380
|
+
async logout({ commit, dispatch, state }, { refreshToken, sendRequest = true }) {
|
|
381
|
+
if (sendRequest && refreshToken) {
|
|
382
|
+
AuthService.logout({ token: refreshToken });
|
|
383
|
+
}
|
|
452
384
|
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
})
|
|
461
|
-
commit('setRefreshToken', remainingRefreshTokens[0]);
|
|
462
|
-
commit('setLoggedInUserId', state.loggedInAccounts[username].id);
|
|
463
|
-
dispatch('refreshTokenAction', state.loggedInAccounts[username]).then(() => {
|
|
464
|
-
EventBus.$emit("ssoEvent", { name: "switchAccount", data: { username }, });
|
|
465
|
-
});
|
|
466
|
-
}
|
|
467
|
-
});
|
|
468
|
-
} else {
|
|
469
|
-
if (state.display === "redirect") {
|
|
470
|
-
return router.push('/welcome');
|
|
471
|
-
} else if (state.display === "npm") {
|
|
472
|
-
EventBus.$emit("ssoEvent", { name: "redirect", data: "/welcome" });
|
|
473
|
-
}
|
|
474
|
-
}
|
|
475
|
-
},
|
|
476
|
-
async getCompanyBySSOEmail({ commit, dispatch }, data) {
|
|
477
|
-
const [err, response] = await to(
|
|
478
|
-
CompanyService.getBySSOEmail(data.email)
|
|
479
|
-
);
|
|
480
|
-
if (err) return dispatch('errorHandler', err);
|
|
481
|
-
if (response.data.success) {
|
|
482
|
-
return response.data;
|
|
483
|
-
}
|
|
484
|
-
},
|
|
485
|
-
async getLoggedInAccounts({ getters, dispatch }) {
|
|
486
|
-
if (getters.refreshTokens && getters.refreshTokens.length >= 1) {
|
|
487
|
-
const [err, response] = await to(
|
|
488
|
-
AuthService.getLoggedInAccounts({ refreshTokens: getters.refreshTokens })
|
|
489
|
-
);
|
|
490
|
-
if (err) return dispatch('errorHandler', err);
|
|
491
|
-
if (response && response.data && response.data.success) {
|
|
492
|
-
dispatch('setLoggedInAccounts', response.data.accounts);
|
|
493
|
-
}
|
|
494
|
-
}
|
|
495
|
-
},
|
|
496
|
-
async loginUsingQR({ commit, dispatch }, data) {
|
|
497
|
-
const [err, response] = await to(
|
|
498
|
-
UserService.loginUsingQR(data)
|
|
499
|
-
);
|
|
500
|
-
if (err) return dispatch('errorHandler', err);
|
|
501
|
-
return response.data.success;
|
|
502
|
-
},
|
|
503
|
-
setLoggedInAccounts({ commit }, accounts) {
|
|
504
|
-
commit('setLoggedInAccounts', accounts);
|
|
505
|
-
EventBus.$emit("ssoEvent", { name: "setLoggedInAccounts", data: accounts });
|
|
506
|
-
},
|
|
507
|
-
setLoggedInUserId({ commit }, id) {
|
|
508
|
-
commit('setLoggedInUserId', id);
|
|
509
|
-
},
|
|
510
|
-
setRefreshToken({ commit }, token) {
|
|
511
|
-
commit('setRefreshToken', token);
|
|
512
|
-
},
|
|
513
|
-
async unsetRefreshToken({ commit, state, dispatch, getters }, refreshToken) {
|
|
514
|
-
let refreshTokens = getters.refreshTokens;
|
|
385
|
+
if (state.$storex) {
|
|
386
|
+
state.$storex.username = '';
|
|
387
|
+
state.$storex.UserId = '';
|
|
388
|
+
state.$storex.localUser = '';
|
|
389
|
+
commit('setToken', '');
|
|
390
|
+
}
|
|
391
|
+
commit('setLoggedInUserId', '');
|
|
515
392
|
|
|
516
|
-
|
|
517
|
-
refreshTokens = refreshTokens?.filter((t) => t !== refreshToken);
|
|
393
|
+
const remainingRefreshTokens = await dispatch('unsetRefreshToken', refreshToken);
|
|
518
394
|
|
|
519
|
-
|
|
520
|
-
|
|
395
|
+
if (remainingRefreshTokens.length >= 1) {
|
|
396
|
+
Object.keys(state.loggedInAccounts).forEach((username) => {
|
|
397
|
+
if (state.loggedInAccounts[username].refreshToken === remainingRefreshTokens[0]) {
|
|
398
|
+
commit('setStorage', {
|
|
399
|
+
username: username,
|
|
400
|
+
UserId: state.loggedInAccounts[username].id,
|
|
401
|
+
localUser: state.loggedInAccounts[username]
|
|
402
|
+
});
|
|
403
|
+
commit('setRefreshToken', remainingRefreshTokens[0]);
|
|
404
|
+
commit('setLoggedInUserId', state.loggedInAccounts[username].id);
|
|
405
|
+
dispatch('refreshTokenAction', state.loggedInAccounts[username]).then(() => {
|
|
406
|
+
EventBus.$emit('ssoEvent', { name: 'switchAccount', data: { username } });
|
|
407
|
+
});
|
|
408
|
+
}
|
|
409
|
+
});
|
|
410
|
+
} else {
|
|
411
|
+
if (state.display === 'redirect') {
|
|
412
|
+
return router.push('/welcome');
|
|
413
|
+
} else if (state.display === 'npm') {
|
|
414
|
+
EventBus.$emit('ssoEvent', { name: 'redirect', data: '/welcome' });
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
},
|
|
418
|
+
async getCompanyBySSOEmail({ commit, dispatch }, data) {
|
|
419
|
+
const [err, response] = await to(CompanyService.getBySSOEmail(data.email));
|
|
420
|
+
if (err) return dispatch('errorHandler', err);
|
|
421
|
+
if (response.data.success) {
|
|
422
|
+
return response.data;
|
|
423
|
+
}
|
|
424
|
+
},
|
|
425
|
+
async getLoggedInAccounts({ getters, dispatch }) {
|
|
426
|
+
if (getters.refreshTokens && getters.refreshTokens.length >= 1) {
|
|
427
|
+
const [err, response] = await to(AuthService.getLoggedInAccounts({ refreshTokens: getters.refreshTokens }));
|
|
428
|
+
if (err) return dispatch('errorHandler', err);
|
|
429
|
+
if (response && response.data && response.data.success) {
|
|
430
|
+
dispatch('setLoggedInAccounts', response.data.accounts);
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
},
|
|
434
|
+
async loginUsingQR({ commit, dispatch }, data) {
|
|
435
|
+
const [err, response] = await to(UserService.loginUsingQR(data));
|
|
436
|
+
if (err) return dispatch('errorHandler', err);
|
|
437
|
+
return response.data.success;
|
|
438
|
+
},
|
|
439
|
+
setLoggedInAccounts({ commit }, accounts) {
|
|
440
|
+
commit('setLoggedInAccounts', accounts);
|
|
441
|
+
EventBus.$emit('ssoEvent', { name: 'setLoggedInAccounts', data: accounts });
|
|
442
|
+
},
|
|
443
|
+
setLoggedInUserId({ commit }, id) {
|
|
444
|
+
commit('setLoggedInUserId', id);
|
|
445
|
+
},
|
|
446
|
+
setRefreshToken({ commit }, token) {
|
|
447
|
+
commit('setRefreshToken', token);
|
|
448
|
+
},
|
|
449
|
+
async unsetRefreshToken({ commit, state, dispatch, getters }, refreshToken) {
|
|
450
|
+
let refreshTokens = getters.refreshTokens;
|
|
521
451
|
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
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
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
452
|
+
// Remove the specified refresh token from the list
|
|
453
|
+
refreshTokens = refreshTokens?.filter((t) => t !== refreshToken);
|
|
454
|
+
|
|
455
|
+
// Update the refresh tokens in the state
|
|
456
|
+
commit('setRefreshTokens', refreshTokens.join(','));
|
|
457
|
+
|
|
458
|
+
return refreshTokens;
|
|
459
|
+
},
|
|
460
|
+
setToken({ commit }, token) {
|
|
461
|
+
commit('setToken', token);
|
|
462
|
+
},
|
|
463
|
+
updateLang({ commit }, lang) {
|
|
464
|
+
commit('updateLang', lang);
|
|
465
|
+
},
|
|
466
|
+
setView({ commit }, view) {
|
|
467
|
+
commit('setView', view);
|
|
468
|
+
},
|
|
469
|
+
setRedirectUri({ commit }, uri) {
|
|
470
|
+
commit('setRedirectUri', uri);
|
|
471
|
+
},
|
|
472
|
+
setDisplay({ commit }, display) {
|
|
473
|
+
commit('setDisplay', display);
|
|
474
|
+
},
|
|
475
|
+
setState({ commit }, stateValue) {
|
|
476
|
+
commit('setState', stateValue);
|
|
477
|
+
},
|
|
478
|
+
setResponseType({ commit }, responseType) {
|
|
479
|
+
commit('setResponseType', responseType);
|
|
480
|
+
},
|
|
481
|
+
setRealm({ commit }, realm) {
|
|
482
|
+
commit('setRealm', realm);
|
|
483
|
+
}
|
|
484
|
+
},
|
|
485
|
+
getters: {
|
|
486
|
+
isLoggedIn: (state) => {
|
|
487
|
+
return !!state.$storex.token && state.$storex.token !== '' && state.$storex.token !== 'null';
|
|
488
|
+
},
|
|
489
|
+
renderView: (state, getters, rootState) => {
|
|
490
|
+
if (state.display !== 'npm') {
|
|
491
|
+
return rootState.route?.name;
|
|
492
|
+
} else return state.view;
|
|
493
|
+
},
|
|
494
|
+
appRealm: (state) => {
|
|
495
|
+
return state.realm;
|
|
496
|
+
},
|
|
497
|
+
appLanguage: (state) => {
|
|
498
|
+
return state.lang;
|
|
499
|
+
},
|
|
500
|
+
accessToken: (state) => {
|
|
501
|
+
return state.$storex.token;
|
|
502
|
+
},
|
|
503
|
+
refreshTokens: (state) => {
|
|
504
|
+
return state.$storex.refreshTokens.split(',');
|
|
505
|
+
},
|
|
506
|
+
apiRoot: (state) => {
|
|
507
|
+
return state.apiRoot;
|
|
508
|
+
}
|
|
509
|
+
}
|
|
574
510
|
};
|