@tapni/auth 1.0.8 → 1.0.9
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 +12 -12
- package/dist/.well-known/assetlinks.json +10 -12
- package/dist/.well-known/microsoft-identity-association.json +5 -5
- package/dist/{Apps-aanvwc1E.js → Apps-spt3-xmr.js} +1 -1
- package/dist/{Billing-C7LjeXBV.js → Billing-EQtSRyls.js} +1 -1
- package/dist/{CustomApp-Cd00FwXJ.js → CustomApp-DytcodWc.js} +1 -1
- package/dist/{General-DH-AnLIA.js → General-BBoC_TV2.js} +1 -1
- package/dist/{QR-cfWsMTIZ.js → QR-DmSyXgb5.js} +1 -1
- package/dist/TapniAuth.es.js +1 -1
- package/dist/TapniAuth.umd.js +8 -8
- package/dist/blank.html +31 -0
- package/dist/{install-CBFqB-tX.js → install-DJ7V1wyP.js} +761 -744
- package/dist/site.webmanifest +11 -1
- package/dist/style.css +1 -1
- package/package.json +14 -4
- package/src/.prettierrc.json +16 -0
- package/src/components/DELETE_LinkIcon.vue +174 -225
- package/src/components/DELETE_SSOPick.vue +93 -148
- package/src/eslint.config.js +15 -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 +2 -2
- package/src/mixins/google.mixin.js +53 -54
- package/src/mixins/qr-auth.mixin.js +111 -107
- package/src/router/index.js +6 -6
- package/src/routes.js +1 -1
- package/src/services/Api.js +55 -57
- package/src/services/CompanyService.js +10 -10
- package/src/services/DeviceService.js +3 -3
- package/src/services/UserService.js +45 -45
- package/src/services/UtilService.js +256 -218
- package/src/store/event-bus.js +22 -22
- package/src/store/locales/cn.js +442 -458
- package/src/store/locales/de.js +438 -517
- package/src/store/locales/es.js +442 -524
- package/src/store/locales/fr.js +442 -516
- package/src/store/locales/it.js +442 -514
- package/src/store/locales/kr.js +442 -491
- package/src/store/locales/lang.js +43 -43
- package/src/store/locales/sr.js +439 -492
- package/src/store/locales/tr.js +436 -487
- package/src/store/store.js +6 -6
- package/src/views/Account.vue +2 -2
- package/src/views/Callback.vue +36 -33
- package/src/views/Login.vue +3 -3
- package/src/views/Reset.vue +132 -135
- package/src/views/Verify.vue +153 -151
package/src/views/Verify.vue
CHANGED
|
@@ -1,170 +1,172 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
2
|
+
<form class="page-login content-boxed content-boxed-padding" @submit.prevent="submit" :style="isModal ? 'max-width: 500px;' : ''">
|
|
3
|
+
<a v-if="isModal" @click="close" class="color-black pull-right pointer" style="margin-top: 0px; position: absolute; right: -20px; text-align: right">
|
|
4
|
+
<i class="font-17 color-black">
|
|
5
|
+
<img src="https://cdn.tapni.co/icons/down-arrow.png" class="responsive-image" style="width: 35%" />
|
|
6
|
+
</i>
|
|
7
|
+
</a>
|
|
8
|
+
<h1 class="bold no-bottom center-text" style="margin-top: 63px">{{ ssoLang[this.appLanguage].verify_account }}</h1>
|
|
9
|
+
<p class="half-bottom half-top center-text color-black"></p>
|
|
10
|
+
<div class="page-login-field half-top">
|
|
11
|
+
<i style="padding-top: 15px; margin-left: 10px">
|
|
12
|
+
<img src="https://cdn.tapni.co/icons/mail.png" class="responsive-image" style="width: 80%" />
|
|
13
|
+
</i>
|
|
14
|
+
<input id="emailInput" v-model="email" @keydown.space.prevent type="email" :placeholder="ssoLang[this.appLanguage].email" required />
|
|
15
|
+
<em></em>
|
|
16
|
+
</div>
|
|
17
|
+
<div class="page-login-field half-top">
|
|
18
|
+
<i style="padding-top: 15px; margin-left: 10px">
|
|
19
|
+
<img src="https://cdn.tapni.co/icons/password2.png" class="responsive-image" style="width: 100%" />
|
|
20
|
+
</i>
|
|
21
|
+
<input id="codeInput" v-model="code" @keydown.space.prevent type="tel" :placeholder="ssoLang[this.appLanguage].code" required />
|
|
22
|
+
<em></em>
|
|
23
|
+
</div>
|
|
24
|
+
<button type="submit" class="button black-button google-button bg-tapni-grey button-90 button-center uppercase bold full-top">
|
|
25
|
+
<span v-if="!submitted" class="uppercase">{{ ssoLang[this.appLanguage].verify_account }}</span>
|
|
26
|
+
<span v-else class="button--loading button__loader"></span>
|
|
27
|
+
</button>
|
|
28
|
+
<div class="decoration decoration-lines-thin no-bottom"></div>
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
<p class="close-text center-text half-top color-black">
|
|
31
|
+
<span v-html="ssoLang[this.appLanguage].verify_account_p1"></span>
|
|
32
|
+
<a href="mailto:support@tapni.com?subject=Email Verification"> support@tapni.com</a>
|
|
33
|
+
</p>
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
35
|
+
<div class="decoration decoration-lines-thin no-bottom"></div>
|
|
36
|
+
<div v-if="!isModal" class="page-login-links">
|
|
37
|
+
<router-link class="create float-right" to="/register">{{ ssoLang[this.appLanguage].register }}</router-link>
|
|
38
|
+
<router-link class="forgot float-left" to="/login">{{ ssoLang[this.appLanguage].sign_in }}</router-link>
|
|
39
|
+
<div class="clear"></div>
|
|
40
|
+
</div>
|
|
41
|
+
<div v-else class="page-login-links" @click="registerAccountModal">
|
|
42
|
+
<a class="forgot center-text pointer small-top"
|
|
43
|
+
>{{ ssoLang[this.appLanguage].or }} <br />
|
|
44
|
+
{{ ssoLang[this.appLanguage].create_new_account }}</a
|
|
45
|
+
>
|
|
46
|
+
<div class="clear"></div>
|
|
47
|
+
</div>
|
|
48
|
+
</form>
|
|
46
49
|
</template>
|
|
47
50
|
|
|
48
51
|
<script>
|
|
49
|
-
import {EventBus} from
|
|
50
|
-
import AuthMixin from
|
|
52
|
+
import { EventBus } from '../store/event-bus';
|
|
53
|
+
import AuthMixin from '../mixins/auth.mixin';
|
|
51
54
|
export default {
|
|
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
|
-
this.email = this.email.trim()
|
|
102
|
-
this.code = this.code.trim()
|
|
55
|
+
name: 'AuthVerify',
|
|
56
|
+
mixins: [AuthMixin],
|
|
57
|
+
props: {
|
|
58
|
+
isModal: {
|
|
59
|
+
type: Boolean,
|
|
60
|
+
required: false,
|
|
61
|
+
default: false
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
data() {
|
|
65
|
+
return {
|
|
66
|
+
loading: true,
|
|
67
|
+
submitted: false,
|
|
68
|
+
action: 'verify',
|
|
69
|
+
email: '',
|
|
70
|
+
code: '',
|
|
71
|
+
captcha: ''
|
|
72
|
+
};
|
|
73
|
+
},
|
|
74
|
+
mounted() {
|
|
75
|
+
if (this.$storex.verifyEmail) this.email = this.$storex.verifyEmail;
|
|
76
|
+
if (this.$route) this.init();
|
|
77
|
+
},
|
|
78
|
+
methods: {
|
|
79
|
+
init() {
|
|
80
|
+
if (this.isLoggedIn) {
|
|
81
|
+
this.$router.push(this.home);
|
|
82
|
+
} else {
|
|
83
|
+
if (this.$storex.verifyEmail) {
|
|
84
|
+
this.email = this.$storex.verifyEmail;
|
|
85
|
+
}
|
|
86
|
+
if (this.$route.hash === '#reset') {
|
|
87
|
+
this.action = 'reset';
|
|
88
|
+
}
|
|
89
|
+
if (this.$route.query.e) {
|
|
90
|
+
this.email = this.$route.query.e;
|
|
91
|
+
}
|
|
92
|
+
if (this.$route.query.c) {
|
|
93
|
+
this.code = this.$route.query.c;
|
|
94
|
+
}
|
|
95
|
+
EventBus.$emit('ssoEvent', { name: 'setLoading', data: false });
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
async submit() {
|
|
99
|
+
// if (this.captcha === '') return this._vm.errorHandler({ message: 'Please select recaptcha' });
|
|
100
|
+
if (this.code.length !== 6) {
|
|
101
|
+
return this.errorSnack(this.ssoLang[this.appLanguage].invalid_code);
|
|
102
|
+
}
|
|
103
103
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
email: this.email,
|
|
107
|
-
captchaToken: await this.getCaptchaToken('account_verify')
|
|
108
|
-
}
|
|
104
|
+
this.email = this.email.trim();
|
|
105
|
+
this.code = this.code.trim();
|
|
109
106
|
|
|
110
|
-
|
|
111
|
-
|
|
107
|
+
let data = {
|
|
108
|
+
code: this.code,
|
|
109
|
+
email: this.email,
|
|
110
|
+
captchaToken: await this.getCaptchaToken('account_verify')
|
|
111
|
+
};
|
|
112
112
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
if (response && response.data && response.data.success === true) {
|
|
116
|
-
if (this.action === 'reset') {
|
|
117
|
-
this.$router.push('/reset?c=' + this.code + '&e=' + this.email)
|
|
118
|
-
this.successSnack(this.ssoLang[this.appLanguage].verify_account_success)
|
|
119
|
-
}
|
|
120
|
-
if (this.action === 'verify') {
|
|
121
|
-
if (this.isModal) {
|
|
122
|
-
this.email = ''
|
|
123
|
-
this.code = ''
|
|
124
|
-
EventBus.$emit('closeModal')
|
|
125
|
-
}
|
|
126
|
-
await this.loginSetup(response)
|
|
127
|
-
await this.getLoggedInAccounts()
|
|
128
|
-
this.$storex.verifyEmail = '';
|
|
129
|
-
this.$router.push('/' + response.data.data.username + '#edit')
|
|
130
|
-
this.successSnack(this.ssoLang[this.appLanguage].verify_account_success2)
|
|
131
|
-
}
|
|
132
|
-
} else this.submitted = false
|
|
113
|
+
if (this.submitted) return false;
|
|
114
|
+
this.submitted = true;
|
|
133
115
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
116
|
+
let response = await this.verify(data);
|
|
117
|
+
this.submitted = false;
|
|
118
|
+
if (response && response.data && response.data.success === true) {
|
|
119
|
+
if (this.action === 'reset') {
|
|
120
|
+
this.$router.push('/reset?c=' + this.code + '&e=' + this.email);
|
|
121
|
+
this.successSnack(this.ssoLang[this.appLanguage].verify_account_success);
|
|
122
|
+
}
|
|
123
|
+
if (this.action === 'verify') {
|
|
124
|
+
if (this.isModal) {
|
|
125
|
+
this.email = '';
|
|
126
|
+
this.code = '';
|
|
127
|
+
EventBus.$emit('closeModal');
|
|
128
|
+
}
|
|
129
|
+
await this.loginSetup(response);
|
|
130
|
+
await this.getLoggedInAccounts();
|
|
131
|
+
this.$storex.verifyEmail = '';
|
|
132
|
+
this.$router.push('/' + response.data.data.username + '#edit');
|
|
133
|
+
this.successSnack(this.ssoLang[this.appLanguage].verify_account_success2);
|
|
134
|
+
}
|
|
135
|
+
} else this.submitted = false;
|
|
136
|
+
},
|
|
137
|
+
registerAccountModal() {
|
|
138
|
+
EventBus.$emit('ssoEvent', { name: 'toggleAddAccountModalRegister', data: false });
|
|
139
|
+
},
|
|
140
|
+
close() {
|
|
141
|
+
EventBus.$emit('ssoEvent', { name: 'toggleAddAccountModal', data: true });
|
|
142
|
+
}
|
|
145
143
|
},
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
}
|
|
144
|
+
watch: {
|
|
145
|
+
'$storage.verifyEmail'(nv) {
|
|
146
|
+
if (nv) this.email = nv;
|
|
147
|
+
},
|
|
148
|
+
'route.name'(nv, ov) {
|
|
149
|
+
if (!ov && nv) this.init();
|
|
150
|
+
},
|
|
151
|
+
'route.query': {
|
|
152
|
+
handler(nv) {
|
|
153
|
+
if (!this.isEmpty(nv)) this.init();
|
|
154
|
+
},
|
|
155
|
+
deep: true
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
};
|
|
157
159
|
</script>
|
|
158
160
|
|
|
159
161
|
<style scoped>
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
162
|
+
#codeInput {
|
|
163
|
+
text-align: center;
|
|
164
|
+
padding-right: 15%;
|
|
165
|
+
font-size: 17px;
|
|
166
|
+
}
|
|
167
|
+
#emailInput {
|
|
166
168
|
text-align: center;
|
|
167
169
|
padding-right: 15%;
|
|
168
170
|
font-size: 17px;
|
|
169
|
-
|
|
171
|
+
}
|
|
170
172
|
</style>
|