@tapni/auth 1.0.4 → 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.
Files changed (81) hide show
  1. package/README.md +2 -0
  2. package/dist/.vite/manifest.json +23 -40
  3. package/dist/.well-known/assetlinks.json +10 -12
  4. package/dist/.well-known/microsoft-identity-association.json +5 -5
  5. package/dist/Apps-XNA4_3B4.js +109 -0
  6. package/dist/Billing-Br0-fHed.js +256 -0
  7. package/dist/CustomApp-CrlbYDOm.js +83 -0
  8. package/dist/QR-Bvqb60-E.js +41 -0
  9. package/dist/TapniAuth.es.js +1 -1
  10. package/dist/TapniAuth.umd.js +49 -23
  11. package/dist/{install-BzPu9V_c.js → install-7FOVy8Ol.js} +6328 -4767
  12. package/dist/site.webmanifest +11 -1
  13. package/dist/style.css +1 -1
  14. package/dist/{web-IFGkBi0t.js → web-UrTMimK1.js} +2 -2
  15. package/package.json +65 -55
  16. package/src/.prettierrc.json +16 -0
  17. package/src/App.vue +329 -259
  18. package/src/eslint.config.js +15 -0
  19. package/src/index.js +4 -0
  20. package/src/install.js +9 -10
  21. package/src/main.js +54 -58
  22. package/src/mixins/apple.mixin.js +56 -54
  23. package/src/mixins/auth.mixin.js +3 -2
  24. package/src/mixins/global.mixin.js +3 -3
  25. package/src/mixins/google.mixin.js +53 -54
  26. package/src/mixins/microsoft.mixin.js +2 -8
  27. package/src/mixins/okta.mixin.js +2 -2
  28. package/src/mixins/qr-auth.mixin.js +111 -107
  29. package/src/mixins/saml.mixin.js +82 -45
  30. package/src/router/index.js +6 -6
  31. package/src/routes.js +7 -1
  32. package/src/services/Api.js +56 -58
  33. package/src/services/AuthService.js +13 -9
  34. package/src/services/CompanyService.js +10 -10
  35. package/src/services/DeviceService.js +3 -3
  36. package/src/services/MetadataService.js +10 -0
  37. package/src/services/UserService.js +48 -45
  38. package/src/services/UtilService.js +317 -225
  39. package/src/store/auth.js +485 -549
  40. package/src/store/constants.js +2 -2
  41. package/src/store/event-bus.js +22 -22
  42. package/src/store/locales/cn.js +476 -458
  43. package/src/store/locales/de.js +478 -517
  44. package/src/store/locales/en.js +454 -512
  45. package/src/store/locales/es.js +477 -524
  46. package/src/store/locales/fr.js +477 -516
  47. package/src/store/locales/it.js +477 -514
  48. package/src/store/locales/ja.js +488 -0
  49. package/src/store/locales/kr.js +477 -491
  50. package/src/store/locales/lang.js +51 -43
  51. package/src/store/locales/pt.js +488 -0
  52. package/src/store/locales/sr.js +477 -492
  53. package/src/store/locales/tr.js +477 -487
  54. package/src/store/store.js +6 -6
  55. package/src/views/Account.vue +36 -8
  56. package/src/views/Apps.vue +17 -30
  57. package/src/views/Billing.vue +538 -0
  58. package/src/views/Callback.vue +36 -33
  59. package/src/views/CustomApp.vue +14 -39
  60. package/src/views/General.vue +151 -184
  61. package/src/views/Login.vue +173 -161
  62. package/src/views/Register.vue +2 -12
  63. package/src/views/Reset.vue +132 -135
  64. package/src/views/Security.vue +13 -7
  65. package/src/views/Verify.vue +153 -151
  66. package/src/views/Welcome.vue +85 -71
  67. package/dist/Account-zep_QUuI.js +0 -153
  68. package/dist/Apps-B9XB7Z7q.js +0 -112
  69. package/dist/CustomApp-BzUsyycz.js +0 -112
  70. package/dist/General-DkcdjPYQ.js +0 -477
  71. package/dist/QR-PW6cAG5j.js +0 -41
  72. package/dist/index.css +0 -193
  73. package/dist/web-AXRKjAOB.js +0 -92
  74. package/src/components/DELETE_Language.vue +0 -168
  75. package/src/components/DELETE_LinkIcon.vue +0 -288
  76. package/src/components/DELETE_ModalOverlay.vue +0 -68
  77. package/src/components/DELETE_OTP.vue +0 -105
  78. package/src/components/SSO.vue +0 -126
  79. package/src/components/SSOPick.vue +0 -166
  80. package/src/mixins/DELETE_mfa-auth.mixin.js +0 -53
  81. package/src/mixins/facebook.mixin.js +0 -78
@@ -24,9 +24,10 @@
24
24
  />
25
25
  </i>
26
26
  </a>
27
- <h1 class="bold no-bottom center-text" style="margin-top: 63px;">
28
- {{ this.ssoLang[this.appLanguage].login }}
29
- </h1>
27
+ <h2 class="bold no-bottom center-text text-[22px]" style="margin-top: 63px;">
28
+ <span v-if="isSSOLogin">{{ this.ssoLang[this.appLanguage].enter_company_email }}</span>
29
+ <span v-else>{{ this.ssoLang[this.appLanguage].login }}</span>
30
+ </h2>
30
31
  <p class="half-bottom small-top center-text color-black"></p>
31
32
 
32
33
  <span v-if="displayFormLogin">
@@ -46,12 +47,12 @@
46
47
  spellcheck="false"
47
48
  type="text"
48
49
  name="email"
49
- :placeholder="ssoLang[this.appLanguage].email_username"
50
+ :placeholder="isSSOLogin ? ssoLang[this.appLanguage].email : ssoLang[this.appLanguage].email_username"
50
51
  required
51
52
  />
52
53
  <em></em>
53
54
  </div>
54
- <div class="page-login-field half-bottom">
55
+ <div v-if="!isSSOLogin" class="page-login-field half-bottom">
55
56
  <i style="padding-top: 15px">
56
57
  <img
57
58
  src="https://cdn.tapni.co/icons/padlock.png"
@@ -106,163 +107,149 @@
106
107
  <span v-else class="button--loading button__loader"></span>
107
108
  </button>
108
109
  </span>
110
+
109
111
  <div class="decoration decoration-lines-thin half-top half-bottom"></div>
110
- <!-- Apple Login Button -->
111
- <a
112
- @click="appleLogin"
113
- v-if="displayAppleLogin"
114
- class="button-center button button-90 google-button pointer"
115
- >
116
- <img
117
- src="https://cdn.tapni.co/icons/apple-logo.png"
118
- style="
119
- position: absolute;
120
- margin-left: -11px;
121
- padding: 8px 0;
122
- height: 100%;
123
- "
124
- />
125
- <span v-if="!appleLoad">{{ ssoLang[appLanguage].sign_in_with }} Apple</span>
126
- <span v-else class="button--loading-black button__loader"></span>
127
- </a>
128
112
 
129
- <!-- Google Login Button -->
130
- <a
131
- @click="googleLogin"
132
- v-if="displayGoogleLogin"
133
- class="button-center button button-90 google-button pointer"
134
- >
135
- <img
136
- src="https://cdn.tapni.co/icons/g-logo.png"
137
- style="
138
- position: absolute;
139
- margin-left: -10px;
140
- padding: 8px 0;
141
- height: 100%;
142
- "
143
- />
144
- <span v-if="!googleLoad"
145
- >{{ ssoLang[appLanguage].sign_in_with }} Google</span
113
+ <!-- Login Buttons -->
114
+ <span v-show="!isSSOLogin">
115
+ <!-- Apple Login Button -->
116
+ <a
117
+ @click="appleLogin"
118
+ v-if="displayAppleLogin"
119
+ class="button-center button button-90 google-button pointer"
146
120
  >
147
- <span v-else class="button--loading-black button__loader"></span>
148
- </a>
121
+ <img
122
+ src="https://cdn.tapni.co/icons/apple-logo.png"
123
+ style="
124
+ position: absolute;
125
+ margin-left: -11px;
126
+ padding: 8px 0;
127
+ height: 100%;
128
+ "
129
+ />
130
+ <span v-if="!appleLoad">{{ ssoLang[appLanguage].sign_in_with }} Apple</span>
131
+ <span v-else class="button--loading-black button__loader"></span>
132
+ </a>
149
133
 
150
- <!-- Facebook Login Button -->
151
- <a
152
- @click="facebookLogin"
153
- v-if="displayFacebookLogin"
154
- class="button-center button button-90 google-button pointer"
155
- >
156
- <img
157
- src="https://cdn.tapni.co/icons/facebook-blue.png"
158
- style="
159
- position: absolute;
160
- margin-left: -9px;
161
- padding: 10px 0;
162
- height: 100%;
163
- "
164
- />
165
- <span v-if="!facebookLoad"
166
- >{{ ssoLang[appLanguage].sign_in_with }} Facebook</span
134
+ <!-- Google Login Button -->
135
+ <a
136
+ @click="googleLogin"
137
+ v-if="displayGoogleLogin"
138
+ class="button-center button button-90 google-button pointer"
167
139
  >
168
- <span v-else class="button--loading-black button__loader"></span>
169
- </a>
140
+ <img
141
+ src="https://cdn.tapni.co/icons/g-logo.png"
142
+ style="
143
+ position: absolute;
144
+ margin-left: -10px;
145
+ padding: 8px 0;
146
+ height: 100%;
147
+ "
148
+ />
149
+ <span v-if="!googleLoad"
150
+ >{{ ssoLang[appLanguage].sign_in_with }} Google</span
151
+ >
152
+ <span v-else class="button--loading-black button__loader"></span>
153
+ </a>
170
154
 
171
- <!-- Microsoft Login Button -->
172
- <a
173
- @click="microsoftLogin"
174
- v-if="!displayMicrosoftSSOLogin"
175
- class="button-center button button-90 google-button pointer"
176
- >
177
- <img
178
- src="https://cdn.tapni.co/icons/outlook.png"
179
- style="
180
- position: absolute;
181
- margin-left: -8px;
182
- padding: 10px 0;
183
- height: 100%;
184
- "
185
- />
186
- <span v-if="!microsoftLoad"
155
+ <!-- Microsoft Login Button -->
156
+ <a
157
+ @click="microsoftLogin"
158
+ v-if="!displayMicrosoftSSOLogin"
159
+ class="button-center button button-90 google-button pointer"
160
+ >
161
+ <img
162
+ src="https://cdn.tapni.co/icons/outlook.png"
163
+ style="
164
+ position: absolute;
165
+ margin-left: -8px;
166
+ padding: 10px 0;
167
+ height: 100%;
168
+ "
169
+ />
170
+ <span v-if="!microsoftLoad"
187
171
  >{{ ssoLang[appLanguage].sign_in_with }} Outlook</span
172
+ >
173
+ <span v-else class="button--loading-black button__loader"></span>
174
+ </a>
175
+
176
+ <!-- Microsoft SSO Button -->
177
+ <a
178
+ @click="isSSOLogin = true"
179
+ v-if="!displayMicrosoftSSOLogin"
180
+ class="button-center button button-90 google-button pointer"
188
181
  >
189
- <span v-else class="button--loading-black button__loader"></span>
190
- </a>
182
+ <img
183
+ src="https://cdn.tapni.co/icons/sso-key.png"
184
+ style="
185
+ position: absolute;
186
+ margin-left: -8px;
187
+ padding: 10px 0;
188
+ height: 100%;
189
+ "
190
+ />
191
+ <span v-if="!microsoftSSOLoad">{{ ssoLang[appLanguage].sign_in_with }} SSO</span>
192
+ <span v-else class="button--loading-black button__loader"></span>
193
+ </a>
191
194
 
192
- <!-- Microsoft SSO Button -->
193
- <a
194
- @click="ssoLogin"
195
- v-if="!displayMicrosoftSSOLogin"
196
- class="button-center button button-90 google-button pointer"
197
- >
198
- <img
199
- src="https://cdn.tapni.co/icons/sso-key.png"
200
- style="
201
- position: absolute;
202
- margin-left: -8px;
203
- padding: 10px 0;
204
- height: 100%;
205
- "
206
- />
207
- <span v-if="!microsoftSSOLoad">{{ ssoLang[appLanguage].sign_in_with }} SSO</span>
208
- <span v-else class="button--loading-black button__loader"></span>
209
- </a>
210
- <!-- Microsoft SSO Button -->
211
- <a
212
- @click="microsoftLogin('sso')"
213
- v-if="displayMicrosoftSSOLogin"
214
- class="button-center button button-90 google-button pointer"
215
- >
216
- <img
217
- src="https://cdn.tapni.co/icons/sso-key.png"
218
- style="
219
- position: absolute;
220
- margin-left: -8px;
221
- padding: 10px 0;
222
- height: 100%;
223
- "
224
- />
225
- <span v-if="microsoftSSOLoad">{{ ssoLang[appLanguage].sign_in_with }} SSO</span>
226
- <span v-else class="button--loading-black button__loader"></span>
227
- </a>
195
+ <!-- Microsoft SSO Button -->
196
+ <a
197
+ @click="microsoftLogin('sso')"
198
+ v-if="displayMicrosoftSSOLogin"
199
+ class="button-center button button-90 google-button pointer"
200
+ >
201
+ <img
202
+ src="https://cdn.tapni.co/icons/sso-key.png"
203
+ style="
204
+ position: absolute;
205
+ margin-left: -8px;
206
+ padding: 10px 0;
207
+ height: 100%;
208
+ "
209
+ />
210
+ <span v-if="microsoftSSOLoad">{{ ssoLang[appLanguage].sign_in_with }} SSO</span>
211
+ <span v-else class="button--loading-black button__loader"></span>
212
+ </a>
228
213
 
229
- <!-- Email Login Button -->
230
- <a
231
- @click="emailLogin = true"
232
- v-if="!displayFormLogin"
233
- class="button-center button button-90 google-button pointer"
234
- >
235
- <img
236
- src="https://cdn.tapni.co/icons/mail.png"
237
- style="
238
- position: absolute;
239
- margin-left: -8px;
240
- padding: 12px 0;
241
- height: 100%;
242
- "
243
- />
244
- <span>{{ ssoLang[appLanguage].sign_in_with }} Email</span>
245
- </a>
214
+ <!-- Email Login Button -->
215
+ <a
216
+ @click="emailLogin = true"
217
+ v-if="!displayFormLogin"
218
+ class="button-center button button-90 google-button pointer"
219
+ >
220
+ <img
221
+ src="https://cdn.tapni.co/icons/mail.png"
222
+ style="
223
+ position: absolute;
224
+ margin-left: -8px;
225
+ padding: 12px 0;
226
+ height: 100%;
227
+ "
228
+ />
229
+ <span>{{ ssoLang[appLanguage].sign_in_with }} Email</span>
230
+ </a>
246
231
 
247
- <!-- Google Login Button -->
248
- <a
249
- @click="$router.push('/qr')"
250
- v-if="displayQRLogin"
251
- class="button-center button button-90 google-button pointer"
252
- >
253
- <img
254
- src="https://cdn.tapni.co/icons/qr.png"
255
- style="
256
- position: absolute;
257
- margin-left: -5px;
258
- padding: 15px 0;
259
- height: 100%;
260
- "
261
- />
262
- <span>{{ ssoLang[appLanguage].sign_in_with }} QR</span>
263
- </a>
232
+ <!-- Google Login Button -->
233
+ <a
234
+ @click="$router.push('/qr')"
235
+ v-if="displayQRLogin"
236
+ class="button-center button button-90 google-button pointer"
237
+ >
238
+ <img
239
+ src="https://cdn.tapni.co/icons/qr.png"
240
+ style="
241
+ position: absolute;
242
+ margin-left: -5px;
243
+ padding: 15px 0;
244
+ height: 100%;
245
+ "
246
+ />
247
+ <span>{{ ssoLang[appLanguage].sign_in_with }} QR</span>
248
+ </a>
249
+
250
+ <div class="decoration decoration-lines-thin no-bottom"></div>
251
+ </span>
264
252
 
265
- <div class="decoration decoration-lines-thin no-bottom"></div>
266
253
 
267
254
  <p class="close-text center-text half-top color-black">
268
255
  {{ ssoLang[appLanguage].terms_by_signing_in }} <br />
@@ -280,21 +267,25 @@
280
267
  v-if="displayRegisterLogin"
281
268
  class="forgot float-right"
282
269
  to="/register"
283
- >{{ ssoLang[appLanguage].create_account }}</router-link
284
- >
270
+ >{{ ssoLang[appLanguage].create_account }}
271
+ </router-link>
285
272
  <router-link
286
273
  v-if="displayResetPasswordLogin"
287
274
  class="create float-left"
288
275
  to="/reset"
289
- >{{ ssoLang[appLanguage].reset_password }}</router-link
290
- >
276
+ >{{ ssoLang[appLanguage].reset_password }}
277
+ </router-link>
278
+ <a v-if="isSSOLogin" @click="isSSOLogin = false"
279
+ class="create float-left pointer"
280
+ >{{ ssoLang[appLanguage].go_back }}
281
+ </a>
291
282
  <div class="clear"></div>
292
283
  </div>
293
284
  <div v-else class="page-login-links" @click="createAccountModal">
294
- <a class="forgot center-text pointer small-top"
295
- >{{ ssoLang[appLanguage].or }} <br />
296
- {{ ssoLang[appLanguage].create_new_account }}</a
297
- >
285
+ <a class="forgot center-text pointer small-top">
286
+ {{ ssoLang[appLanguage].or }} <br />
287
+ {{ ssoLang[appLanguage].create_new_account }}
288
+ </a>
298
289
  <div class="clear"></div>
299
290
  </div>
300
291
  </form>
@@ -302,7 +293,6 @@
302
293
 
303
294
  <script>
304
295
  import GoogleMixin from "../mixins/google.mixin";
305
- import FacebookMixin from "../mixins/facebook.mixin";
306
296
  import AppleMixin from "../mixins/apple.mixin";
307
297
  import MicrosoftMixin from "../mixins/microsoft.mixin";
308
298
  import OktaMixin from "../mixins/okta.mixin";
@@ -313,7 +303,7 @@ import { EventBus } from "../store/event-bus";
313
303
  import to from "await-to-js";
314
304
  export default {
315
305
  name: "AuthLogin",
316
- mixins: [GoogleMixin, FacebookMixin, AppleMixin, MicrosoftMixin, OktaMixin, SamlMixin, AuthMixin, QRAuthMixin],
306
+ mixins: [GoogleMixin, AppleMixin, MicrosoftMixin, OktaMixin, SamlMixin, AuthMixin, QRAuthMixin],
317
307
  data() {
318
308
  return {
319
309
  loading: true,
@@ -323,6 +313,7 @@ export default {
323
313
  captcha: "",
324
314
  revealPassword: false,
325
315
  emailLogin: true,
316
+ isSSOLogin: false,
326
317
 
327
318
  otpToken: '',
328
319
  showOTP: false
@@ -333,7 +324,7 @@ export default {
333
324
  return this.emailLogin;
334
325
  },
335
326
  displayResetPasswordLogin() {
336
- return true;
327
+ return !this.isSSOLogin;
337
328
  },
338
329
  displayRegisterLogin() {
339
330
  return true;
@@ -361,11 +352,32 @@ export default {
361
352
  });
362
353
  },
363
354
  methods: {
355
+ async ssoLoginSubmit () {
356
+ this.loading = true;
357
+ const response = await this.getCompanyBySSOEmail({ email: this.emailOrUsername });
358
+ this.loading = false;
359
+ let ssoTypes;
360
+ if (!response || response.error) return;
361
+ else {
362
+ ssoTypes = Object.keys(response.sso);
363
+ if (!ssoTypes.length) {
364
+ return this.errorSnack(this.ssoLang[this.appLanguage].no_sso_logins);
365
+ } else {
366
+ if (ssoTypes[0] === "azure")
367
+ this.microsoftLogin("sso", response.sso.azure.sso);
368
+ if (ssoTypes[0] === "okta") this.oktaLogin(response.sso.okta.sso);
369
+ if (ssoTypes[0] === "saml")
370
+ this.samlLogin(response.sso.saml.sso.loginUrl);
371
+ }
372
+ }
373
+ },
364
374
  async submit() {
365
375
  // if (this.captcha === '') return this._vm.errorHandler({ message: 'Please select recaptcha' });
366
376
  if (this.submitted) return;
367
377
  this.submitted = true;
368
378
 
379
+ if (this.isSSOLogin) return this.ssoLoginSubmit();
380
+
369
381
  this.emailOrUsername = this.emailOrUsername.trim();
370
382
 
371
383
  let response_type = this.$route.query.response_type;
@@ -5,7 +5,7 @@
5
5
  <img src="https://cdn.tapni.co/icons/down-arrow.png" class="responsive-image" style="width: 35%;"/>
6
6
  </i>
7
7
  </a>
8
- <h1 class="bold no-bottom center-text" style="margin-top: 63px;">{{ssoLang[this.appLanguage].register}}</h1>
8
+ <h1 class="bold no-bottom center-text text-[24px]" style="margin-top: 63px;">{{ssoLang[this.appLanguage].register}}</h1>
9
9
  <p class="half-bottom small-top center-text color-black">
10
10
  <span v-if="usernameRegister">
11
11
  t.link/{{username}} {{ssoLang[this.appLanguage].username_is_free}} ✅
@@ -66,15 +66,6 @@
66
66
  <span v-else class="button--loading-black button__loader"></span>
67
67
  </a>
68
68
 
69
- <!-- Facebook Login Button -->
70
- <a v-if="displayFacebookLogin"
71
- @click="facebookLogin"
72
- class="button-center button button-90 google-button pointer">
73
- <img src="https://cdn.tapni.co/icons/facebook-blue.png" style="position: absolute; margin-left: -10px; padding: 10px 0; height: 100%;"/>
74
- <span v-if="!facebookLoad">{{ssoLang[this.appLanguage].sign_up_with}} Facebook</span>
75
- <span v-else class="button--loading-black button__loader"></span>
76
- </a>
77
-
78
69
  <!-- Email Login Button -->
79
70
  <a @click="emailLogin = true" v-if="!emailLogin"
80
71
  class="button-center button button-90 google-button pointer">
@@ -103,14 +94,13 @@
103
94
 
104
95
  <script>
105
96
  import GoogleMixin from '../mixins/google.mixin'
106
- import FacebookMixin from '../mixins/facebook.mixin'
107
97
  import AppleMixin from '../mixins/apple.mixin'
108
98
  import MicrosoftMixin from '../mixins/microsoft.mixin'
109
99
  import {EventBus} from "../store/event-bus";
110
100
  import AuthMixin from "../mixins/auth.mixin";
111
101
  export default {
112
102
  name: 'AuthRegister',
113
- mixins: [GoogleMixin, FacebookMixin, AppleMixin, MicrosoftMixin, AuthMixin],
103
+ mixins: [GoogleMixin, AppleMixin, MicrosoftMixin, AuthMixin],
114
104
  props: {
115
105
  isModal: {
116
106
  type: Boolean,