27 lines
698 B
JavaScript
27 lines
698 B
JavaScript
import { h, resolveComponent } from 'vue'
|
|
import LoginForm from '../login_form/login_form.vue'
|
|
import MFARecoveryForm from '../mfa_form/recovery_form.vue'
|
|
import MFATOTPForm from '../mfa_form/totp_form.vue'
|
|
import { mapGetters } from 'vuex'
|
|
|
|
const AuthForm = {
|
|
name: 'AuthForm',
|
|
render () {
|
|
return h(resolveComponent(this.authForm))
|
|
},
|
|
computed: {
|
|
authForm () {
|
|
if (this.requiredTOTP) { return 'MFATOTPForm' }
|
|
if (this.requiredRecovery) { return 'MFARecoveryForm' }
|
|
return 'LoginForm'
|
|
},
|
|
...mapGetters('authFlow', ['requiredTOTP', 'requiredRecovery'])
|
|
},
|
|
components: {
|
|
MFARecoveryForm,
|
|
MFATOTPForm,
|
|
LoginForm
|
|
}
|
|
}
|
|
|
|
export default AuthForm
|