Base support for CAPTCHA (kocaptcha)

This commit is contained in:
Ekaterina Vaartis 2018-12-15 03:05:47 +03:00
parent 4b30ce64c9
commit 9303bd5d36
2 changed files with 23 additions and 1 deletions

View File

@ -11,7 +11,8 @@ const registration = {
username: '', username: '',
password: '', password: '',
confirm: '' confirm: ''
} },
captcha: {}
}), }),
validations: { validations: {
user: { user: {
@ -29,6 +30,13 @@ const registration = {
if ((!this.registrationOpen && !this.token) || this.signedIn) { if ((!this.registrationOpen && !this.token) || this.signedIn) {
this.$router.push('/main/all') this.$router.push('/main/all')
} }
fetch("/api/pleroma/captcha")
.then(resp => resp.json())
.then(resp => {
// TODO: check for errors
this.captcha = resp
})
}, },
computed: { computed: {
token () { return this.$route.params.token }, token () { return this.$route.params.token },
@ -45,6 +53,8 @@ const registration = {
async submit () { async submit () {
this.user.nickname = this.user.username this.user.nickname = this.user.username
this.user.token = this.token this.user.token = this.token
this.user.captcha_solution = this.captcha.solution;
this.user.captcha_token = this.captcha.token;
this.$v.$touch() this.$v.$touch()

View File

@ -75,6 +75,18 @@
</ul> </ul>
</div> </div>
<div class="form-group" id="captcha-group">
<template v-if="captcha.type == 'kocaptcha'">
<img v-bind:src="captcha.url">
<label class='form--label' for='captcha-label'>CAPTCHA</label>
<input :disabled="isPending"
v-model='captcha.solution'
class='form-control' id='captcha-answer' type='text'>
</template>
</div>
<div class='form-group' v-if='token' > <div class='form-group' v-if='token' >
<label for='token'>{{$t('registration.token')}}</label> <label for='token'>{{$t('registration.token')}}</label>
<input disabled='true' v-model='token' class='form-control' id='token' type='text'> <input disabled='true' v-model='token' class='form-control' id='token' type='text'>