2019-06-13 06:16:55 +10:00
|
|
|
<template>
|
2019-07-05 17:17:44 +10:00
|
|
|
<div class="login panel panel-default">
|
|
|
|
<!-- Default panel contents -->
|
2019-06-13 06:16:55 +10:00
|
|
|
|
2019-07-05 17:17:44 +10:00
|
|
|
<div class="panel-heading">
|
|
|
|
{{ $t('login.heading.totp') }}
|
|
|
|
</div>
|
2019-06-13 06:16:55 +10:00
|
|
|
|
2019-07-05 17:17:44 +10:00
|
|
|
<div class="panel-body">
|
|
|
|
<form
|
|
|
|
class="login-form"
|
|
|
|
@submit.prevent="submit"
|
|
|
|
>
|
|
|
|
<div class="form-group">
|
|
|
|
<label for="code">
|
|
|
|
{{ $t('login.authentication_code') }}
|
|
|
|
</label>
|
|
|
|
<input
|
|
|
|
id="code"
|
|
|
|
v-model="code"
|
|
|
|
class="form-control"
|
|
|
|
>
|
|
|
|
</div>
|
2019-06-13 06:16:55 +10:00
|
|
|
|
2019-07-05 17:17:44 +10:00
|
|
|
<div class="form-group">
|
|
|
|
<div class="login-bottom">
|
|
|
|
<div>
|
|
|
|
<a
|
|
|
|
href="#"
|
|
|
|
@click.prevent="requireRecovery"
|
|
|
|
>
|
|
|
|
{{ $t('login.enter_recovery_code') }}
|
|
|
|
</a>
|
|
|
|
<br>
|
|
|
|
<a
|
|
|
|
href="#"
|
|
|
|
@click.prevent="abortMFA"
|
|
|
|
>
|
|
|
|
{{ $t('general.cancel') }}
|
|
|
|
</a>
|
|
|
|
</div>
|
|
|
|
<button
|
|
|
|
type="submit"
|
|
|
|
class="btn btn-default"
|
|
|
|
>
|
|
|
|
{{ $t('general.verify') }}
|
|
|
|
</button>
|
2019-06-13 06:16:55 +10:00
|
|
|
</div>
|
|
|
|
</div>
|
2019-07-05 17:17:44 +10:00
|
|
|
</form>
|
|
|
|
</div>
|
2019-06-13 06:16:55 +10:00
|
|
|
|
2019-07-05 17:17:44 +10:00
|
|
|
<div
|
|
|
|
v-if="error"
|
|
|
|
class="form-group"
|
|
|
|
>
|
|
|
|
<div class="alert error">
|
|
|
|
{{ error }}
|
|
|
|
<i
|
|
|
|
class="button-icon icon-cancel"
|
|
|
|
@click="clearError"
|
|
|
|
/>
|
|
|
|
</div>
|
2019-06-13 06:16:55 +10:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
<script src="./totp_form.js"></script>
|